Xuất dữ liệu sang Excel nodejs

Chào mừng bạn đến với hướng dẫn về cách xuất dữ liệu từ cơ sở dữ liệu MySQL sang tệp Excel trong NodeJS. Vì vậy, bạn cần tạo báo cáo từ cơ sở dữ liệu hoặc tạo danh sách?

ⓘ Tôi đã bao gồm một tệp zip chứa tất cả mã nguồn khi bắt đầu hướng dẫn này, vì vậy bạn không cần phải sao chép-dán mọi thứ… Hoặc nếu bạn chỉ muốn đi sâu vào

 

 

MỤC LỤC

Xuất dữ liệu sang Excel nodejs
Tải xuống & Ghi chú
Xuất dữ liệu sang Excel nodejs
Xuất Excel
Xuất dữ liệu sang Excel nodejs
Bit & Liên kết Hữu ích
Xuất dữ liệu sang Excel nodejs
Kết thúc

 

TẢI XUỐNG & LƯU Ý

Đầu tiên, đây là liên kết tải xuống mã ví dụ như đã hứa

 

GHI CHÚ NHANH

  • Tải xuống và giải nén vào thư mục dự án của bạn. Ví dụ, D:\xlsx
  • Tạo cơ sở dữ liệu để thử nghiệm và nhập 1-users.sql
  • Mở 2-export.js, thay đổi cài đặt cơ sở dữ liệu thành của riêng bạn
  • Khởi chạy thiết bị đầu cuối, điều hướng đến thư mục dự án của bạn
    // (A) LOAD MODULES
    // npm install mysql xlsx
    // https://www.npmjs.com/package/mysql
    // https://www.npmjs.com/package/xlsx
    const mysql = require("mysql"),
          xlsx = require("xlsx");
     
    // (B) CONNECT TO DATABASE - CHANGE SETTINGS TO YOUR OWN!
    const db = mysql.createConnection({
      host: "localhost",
      user: "root",
      password: "",
      database: "test"
    });
    db.connect();
     
    // (C) EXPORT TO EXCEL
    db.query("SELECT * FROM `users`", (error, results) => {
      // (C1) EXTRACT DATA FROM DATABASE
      if (error) throw error;
      var data = [];
      results.forEach((row) => {
        data.push([row["user_name"], row["user_email"]]);
      });
     
      // (C2) WRITE TO EXCEL FILE
      var worksheet = xlsx.utils.aoa_to_sheet(data),
          workbook = xlsx.utils.book_new();
      xlsx.utils.book_append_sheet(workbook, worksheet, "Users");
      xlsx.writeFile(workbook, "demo.xlsx");
    });
     
    // (D) DONE - CLOSE DB CONNECTION
    db.end();
    0. Cài đặt các mô-đun cần thiết –
    // (A) LOAD MODULES
    // npm install mysql xlsx
    // https://www.npmjs.com/package/mysql
    // https://www.npmjs.com/package/xlsx
    const mysql = require("mysql"),
          xlsx = require("xlsx");
     
    // (B) CONNECT TO DATABASE - CHANGE SETTINGS TO YOUR OWN!
    const db = mysql.createConnection({
      host: "localhost",
      user: "root",
      password: "",
      database: "test"
    });
    db.connect();
     
    // (C) EXPORT TO EXCEL
    db.query("SELECT * FROM `users`", (error, results) => {
      // (C1) EXTRACT DATA FROM DATABASE
      if (error) throw error;
      var data = [];
      results.forEach((row) => {
        data.push([row["user_name"], row["user_email"]]);
      });
     
      // (C2) WRITE TO EXCEL FILE
      var worksheet = xlsx.utils.aoa_to_sheet(data),
          workbook = xlsx.utils.book_new();
      xlsx.utils.book_append_sheet(workbook, worksheet, "Users");
      xlsx.writeFile(workbook, "demo.xlsx");
    });
     
    // (D) DONE - CLOSE DB CONNECTION
    db.end();
    1
  • Chạy bản trình diễn –
    // (A) LOAD MODULES
    // npm install mysql xlsx
    // https://www.npmjs.com/package/mysql
    // https://www.npmjs.com/package/xlsx
    const mysql = require("mysql"),
          xlsx = require("xlsx");
     
    // (B) CONNECT TO DATABASE - CHANGE SETTINGS TO YOUR OWN!
    const db = mysql.createConnection({
      host: "localhost",
      user: "root",
      password: "",
      database: "test"
    });
    db.connect();
     
    // (C) EXPORT TO EXCEL
    db.query("SELECT * FROM `users`", (error, results) => {
      // (C1) EXTRACT DATA FROM DATABASE
      if (error) throw error;
      var data = [];
      results.forEach((row) => {
        data.push([row["user_name"], row["user_email"]]);
      });
     
      // (C2) WRITE TO EXCEL FILE
      var worksheet = xlsx.utils.aoa_to_sheet(data),
          workbook = xlsx.utils.book_new();
      xlsx.utils.book_append_sheet(workbook, worksheet, "Users");
      xlsx.writeFile(workbook, "demo.xlsx");
    });
     
    // (D) DONE - CLOSE DB CONNECTION
    db.end();
    2
Nếu bạn phát hiện ra một lỗi, hãy bình luận bên dưới. Tôi cũng cố gắng trả lời các câu hỏi ngắn, nhưng đó là một người so với cả thế giới… Nếu bạn cần câu trả lời gấp, vui lòng xem danh sách các trang web của tôi để được trợ giúp về lập trình

 

MÃ VÍ DỤ TẢI XUỐNG

Nhấp vào đây để tải xuống tất cả mã nguồn ví dụ, tôi đã phát hành nó theo giấy phép MIT, vì vậy hãy thoải mái xây dựng trên mã nguồn đó hoặc sử dụng nó trong dự án của riêng bạn

 

 

XUẤT CƠ SỞ DỮ LIỆU SANG EXCEL

Được rồi, bây giờ chúng ta hãy lấy ví dụ về xuất dữ liệu từ cơ sở dữ liệu MySQL để ghi nó vào tệp Excel

 

PHẦN 1) CƠ SỞ DỮ LIỆU GIẢ

1 người dùng. sql

-- (A) USERS TABLE
CREATE TABLE `users` (
  `user_id` bigint(20) NOT NULL,
  `user_name` varchar(255) NOT NULL,
  `user_email` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
ALTER TABLE `users`
  ADD PRIMARY KEY (`user_id`),
  ADD UNIQUE KEY `user_email` (`user_email`),
  ADD KEY `user_name` (`user_name`);
 
ALTER TABLE `users`
  MODIFY `user_id` bigint(20) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=11;
 
-- (B) DUMMY USERS
INSERT INTO `users` (`user_id`, `user_name`, `user_email`) VALUES
(1, 'Jo Doe', '[email protected]'),
(2, 'Job Doe', '[email protected]'),
(3, 'Joe Doe', '[email protected]'),
(4, 'Jog Doe', '[email protected]'),
(5, 'Joh Doe', '[email protected]'),
(6, 'Joi Doe', '[email protected]'),
(7, 'Jol Doe', '[email protected]'),
(8, 'Jon Doe', '[email protected]'),
(9, 'Jou Doe', '[email protected]'),
(10, 'Joy Doe', '[email protected]');

Đầu tiên, chúng ta hãy bắt đầu bằng cách tạo một cơ sở dữ liệu

// (A) LOAD MODULES
// npm install mysql xlsx
// https://www.npmjs.com/package/mysql
// https://www.npmjs.com/package/xlsx
const mysql = require("mysql"),
      xlsx = require("xlsx");
 
// (B) CONNECT TO DATABASE - CHANGE SETTINGS TO YOUR OWN!
const db = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "",
  database: "test"
});
db.connect();
 
// (C) EXPORT TO EXCEL
db.query("SELECT * FROM `users`", (error, results) => {
  // (C1) EXTRACT DATA FROM DATABASE
  if (error) throw error;
  var data = [];
  results.forEach((row) => {
    data.push([row["user_name"], row["user_email"]]);
  });
 
  // (C2) WRITE TO EXCEL FILE
  var worksheet = xlsx.utils.aoa_to_sheet(data),
      workbook = xlsx.utils.book_new();
  xlsx.utils.book_append_sheet(workbook, worksheet, "Users");
  xlsx.writeFile(workbook, "demo.xlsx");
});
 
// (D) DONE - CLOSE DB CONNECTION
db.end();
3 đơn giản và xác định một số người dùng giả

  • // (A) LOAD MODULES
    // npm install mysql xlsx
    // https://www.npmjs.com/package/mysql
    // https://www.npmjs.com/package/xlsx
    const mysql = require("mysql"),
          xlsx = require("xlsx");
     
    // (B) CONNECT TO DATABASE - CHANGE SETTINGS TO YOUR OWN!
    const db = mysql.createConnection({
      host: "localhost",
      user: "root",
      password: "",
      database: "test"
    });
    db.connect();
     
    // (C) EXPORT TO EXCEL
    db.query("SELECT * FROM `users`", (error, results) => {
      // (C1) EXTRACT DATA FROM DATABASE
      if (error) throw error;
      var data = [];
      results.forEach((row) => {
        data.push([row["user_name"], row["user_email"]]);
      });
     
      // (C2) WRITE TO EXCEL FILE
      var worksheet = xlsx.utils.aoa_to_sheet(data),
          workbook = xlsx.utils.book_new();
      xlsx.utils.book_append_sheet(workbook, worksheet, "Users");
      xlsx.writeFile(workbook, "demo.xlsx");
    });
     
    // (D) DONE - CLOSE DB CONNECTION
    db.end();
    4 ID người dùng, khóa chính và tự động tăng
  • // (A) LOAD MODULES
    // npm install mysql xlsx
    // https://www.npmjs.com/package/mysql
    // https://www.npmjs.com/package/xlsx
    const mysql = require("mysql"),
          xlsx = require("xlsx");
     
    // (B) CONNECT TO DATABASE - CHANGE SETTINGS TO YOUR OWN!
    const db = mysql.createConnection({
      host: "localhost",
      user: "root",
      password: "",
      database: "test"
    });
    db.connect();
     
    // (C) EXPORT TO EXCEL
    db.query("SELECT * FROM `users`", (error, results) => {
      // (C1) EXTRACT DATA FROM DATABASE
      if (error) throw error;
      var data = [];
      results.forEach((row) => {
        data.push([row["user_name"], row["user_email"]]);
      });
     
      // (C2) WRITE TO EXCEL FILE
      var worksheet = xlsx.utils.aoa_to_sheet(data),
          workbook = xlsx.utils.book_new();
      xlsx.utils.book_append_sheet(workbook, worksheet, "Users");
      xlsx.writeFile(workbook, "demo.xlsx");
    });
     
    // (D) DONE - CLOSE DB CONNECTION
    db.end();
    0 Tên người dùng
  • // (A) LOAD MODULES
    // npm install mysql xlsx
    // https://www.npmjs.com/package/mysql
    // https://www.npmjs.com/package/xlsx
    const mysql = require("mysql"),
          xlsx = require("xlsx");
     
    // (B) CONNECT TO DATABASE - CHANGE SETTINGS TO YOUR OWN!
    const db = mysql.createConnection({
      host: "localhost",
      user: "root",
      password: "",
      database: "test"
    });
    db.connect();
     
    // (C) EXPORT TO EXCEL
    db.query("SELECT * FROM `users`", (error, results) => {
      // (C1) EXTRACT DATA FROM DATABASE
      if (error) throw error;
      var data = [];
      results.forEach((row) => {
        data.push([row["user_name"], row["user_email"]]);
      });
     
      // (C2) WRITE TO EXCEL FILE
      var worksheet = xlsx.utils.aoa_to_sheet(data),
          workbook = xlsx.utils.book_new();
      xlsx.utils.book_append_sheet(workbook, worksheet, "Users");
      xlsx.writeFile(workbook, "demo.xlsx");
    });
     
    // (D) DONE - CLOSE DB CONNECTION
    db.end();
    1 Email của người dùng

 

 

PHẦN 2) XUẤT RA FILE EXCEL

2-xuất. js

// (A) LOAD MODULES
// npm install mysql xlsx
// https://www.npmjs.com/package/mysql
// https://www.npmjs.com/package/xlsx
const mysql = require("mysql"),
      xlsx = require("xlsx");
 
// (B) CONNECT TO DATABASE - CHANGE SETTINGS TO YOUR OWN!
const db = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "",
  database: "test"
});
db.connect();
 
// (C) EXPORT TO EXCEL
db.query("SELECT * FROM `users`", (error, results) => {
  // (C1) EXTRACT DATA FROM DATABASE
  if (error) throw error;
  var data = [];
  results.forEach((row) => {
    data.push([row["user_name"], row["user_email"]]);
  });
 
  // (C2) WRITE TO EXCEL FILE
  var worksheet = xlsx.utils.aoa_to_sheet(data),
      workbook = xlsx.utils.book_new();
  xlsx.utils.book_append_sheet(workbook, worksheet, "Users");
  xlsx.writeFile(workbook, "demo.xlsx");
});
 
// (D) DONE - CLOSE DB CONNECTION
db.end();

Cuối cùng, tôi không nghĩ điều này cần giải thích từng dòng một…

  1. Tải các mô-đun cần thiết. Có, NodeJS không có khả năng riêng để kết nối với MySQL và tạo tệp Excel. Chỉ cần đảm bảo rằng bạn đã cài đặt đúng cách
    // (A) LOAD MODULES
    // npm install mysql xlsx
    // https://www.npmjs.com/package/mysql
    // https://www.npmjs.com/package/xlsx
    const mysql = require("mysql"),
          xlsx = require("xlsx");
     
    // (B) CONNECT TO DATABASE - CHANGE SETTINGS TO YOUR OWN!
    const db = mysql.createConnection({
      host: "localhost",
      user: "root",
      password: "",
      database: "test"
    });
    db.connect();
     
    // (C) EXPORT TO EXCEL
    db.query("SELECT * FROM `users`", (error, results) => {
      // (C1) EXTRACT DATA FROM DATABASE
      if (error) throw error;
      var data = [];
      results.forEach((row) => {
        data.push([row["user_name"], row["user_email"]]);
      });
     
      // (C2) WRITE TO EXCEL FILE
      var worksheet = xlsx.utils.aoa_to_sheet(data),
          workbook = xlsx.utils.book_new();
      xlsx.utils.book_append_sheet(workbook, worksheet, "Users");
      xlsx.writeFile(workbook, "demo.xlsx");
    });
     
    // (D) DONE - CLOSE DB CONNECTION
    db.end();
    2 và
    // (A) LOAD MODULES
    // npm install mysql xlsx
    // https://www.npmjs.com/package/mysql
    // https://www.npmjs.com/package/xlsx
    const mysql = require("mysql"),
          xlsx = require("xlsx");
     
    // (B) CONNECT TO DATABASE - CHANGE SETTINGS TO YOUR OWN!
    const db = mysql.createConnection({
      host: "localhost",
      user: "root",
      password: "",
      database: "test"
    });
    db.connect();
     
    // (C) EXPORT TO EXCEL
    db.query("SELECT * FROM `users`", (error, results) => {
      // (C1) EXTRACT DATA FROM DATABASE
      if (error) throw error;
      var data = [];
      results.forEach((row) => {
        data.push([row["user_name"], row["user_email"]]);
      });
     
      // (C2) WRITE TO EXCEL FILE
      var worksheet = xlsx.utils.aoa_to_sheet(data),
          workbook = xlsx.utils.book_new();
      xlsx.utils.book_append_sheet(workbook, worksheet, "Users");
      xlsx.writeFile(workbook, "demo.xlsx");
    });
     
    // (D) DONE - CLOSE DB CONNECTION
    db.end();
    3
  2. Kết nối với cơ sở dữ liệu MySQL. Lời nhắc thay đổi cài đặt thành của riêng bạn
  3. Trích xuất dữ liệu từ cơ sở dữ liệu và ghi chúng vào một tệp Excel mới
  4. Đóng kết nối cơ sở dữ liệu

Kết thúc

 

 

BIT & LIÊN KẾT HỮU ÍCH

Đó là tất cả những gì dành cho hướng dẫn và đây là một phần nhỏ về một số tính năng bổ sung và liên kết có thể hữu ích cho bạn

 

TÌNH HÌNH & HIỆU QUẢ XUẤT KHẨU

Lưu ý về cách hoạt động của quá trình xuất – Trước tiên, chúng tôi đang đọc tất cả các mục nhập cơ sở dữ liệu vào mảng

// (A) LOAD MODULES
// npm install mysql xlsx
// https://www.npmjs.com/package/mysql
// https://www.npmjs.com/package/xlsx
const mysql = require("mysql"),
      xlsx = require("xlsx");
 
// (B) CONNECT TO DATABASE - CHANGE SETTINGS TO YOUR OWN!
const db = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "",
  database: "test"
});
db.connect();
 
// (C) EXPORT TO EXCEL
db.query("SELECT * FROM `users`", (error, results) => {
  // (C1) EXTRACT DATA FROM DATABASE
  if (error) throw error;
  var data = [];
  results.forEach((row) => {
    data.push([row["user_name"], row["user_email"]]);
  });
 
  // (C2) WRITE TO EXCEL FILE
  var worksheet = xlsx.utils.aoa_to_sheet(data),
      workbook = xlsx.utils.book_new();
  xlsx.utils.book_append_sheet(workbook, worksheet, "Users");
  xlsx.writeFile(workbook, "demo.xlsx");
});
 
// (D) DONE - CLOSE DB CONNECTION
db.end();
4, sau đó ghi chúng vào tệp Excel trong một lần. Mặc dù điều này hoạt động đối với các tập dữ liệu vừa và nhỏ, nhưng điều này có thể sẽ gặp phải các vấn đề về hiệu suất trong khi xuất một lượng lớn dữ liệu

Vì vậy, hãy thực hiện thẩm định của riêng bạn nếu bạn phải xử lý các mặt hàng xuất khẩu lớn. Thay vào đó, hãy thay đổi quy trình xuất thành “đọc từng hàng” và “nối thêm vào tệp Excel theo từng hàng”

 

LIÊN KẾT và THAM KHẢO

  • SheetJS – NPM
  • MySQL – NPM
  • Nhập Excel vào cơ sở dữ liệu trong NodeJS – Code Boxx

 

KẾT THÚC

Cảm ơn bạn đã đọc, và chúng tôi đã đi đến cuối. Tôi hy vọng rằng nó đã giúp bạn hiểu rõ hơn và nếu bạn muốn chia sẻ bất cứ điều gì với hướng dẫn này, vui lòng bình luận bên dưới. Chúc may mắn và mã hóa hạnh phúc