Visual Basic for Applications [VBA] được tạo ra vào những năm 90 và thực tế chưa bao giờ thay đổi kể từ đó. Ngoài môi trường phát triển hoàn toàn lỗi thời và cú pháp độc đáo, VBA còn là mối đe dọa lớn đối với các tập đoàn như một công cụ hiệu quả cao cho phần mềm độc hại do khả năng truy cập các quy trình hệ điều hành cốt lõi của nó.
Vâng, VBA có điểm mạnh của nó và cá nhân tôi biết những người đã kiếm được hàng triệu đô la nhờ mã VBA chất lượng. Tuy nhiên, có một cách nhanh hơn, an toàn hơn và thú vị hơn để tự động hóa excel. nói xin chào với phần bổ trợ Excel Môi trường phát triển tự động hóa JavaScript [JADE]
NGỌC là gì?JADE cung cấp cho bạn khả năng sử dụng JavaScript để tự động hóa mọi thứ trong phạm vi sổ làm việc của Excel mà không cần bật macro
Vì JavaScript bạn viết đang tồn tại trong trình duyệt nên nó không có quyền truy cập vào bất kỳ tính năng nào của hệ điều hành trên máy chủ. Điều này có nghĩa là tất cả mã tự động hóa của bạn được giới hạn trong sổ làm việc của bạn, giúp chia sẻ cực kỳ an toàn
JADE cung cấp một môi trường cho phép nhà phát triển viết JavaScript trực tiếp trong sổ làm việc và thậm chí nó có thể lấy các mô-đun mã từ đám mây bằng GitHub Gists
Bản trình diễn ngắnHãy nhanh chóng trình bày cách sử dụng JavaScript trong Excel để tự động đặt dấu thời gian
Trước tiên, bạn sẽ cần thêm bổ trợ vào sổ làm việc excel của mình. Hướng dẫn về cách làm như vậy có thể được tìm thấy ở đây
Khi bạn đã thiết lập và chạy phần bổ trợ, hãy chọn Thêm mô-đun mã
Chọn “Thêm mô-đun mã”
Nhập tên của mô-đun;
Đặt tên cho mô-đun “Demo”
Điều này sẽ tạo trình chỉnh sửa mã bên dưới. Bạn có thể muốn thay đổi kích thước nó để phù hợp hơn với màn hình của bạn
Chỉ cần viết, lưu và chạy JavaScript trong Excel
Bạn sẽ nhận thấy rằng write_timestamp hiện được hiển thị trong bộ chọn thả xuống “tên chức năng”. Nhấp vào nút “Chạy” để thực thi chức năng và ghi ngày giờ hiện tại vào ô hiện hành
Bạn cũng có thể thay đổi dấu thời gian thành văn bản
JADE cũng đi kèm với các thông báo lỗi hữu ích cho bạn biết sự cố và nơi khắc phục sự cố. Nếu bạn quên dấu ngoặc kép đóng, bạn sẽ thấy như sau
Chạy tập lệnh của bạn cũng lưu nó. Nếu bạn muốn lưu mà không chạy, bạn có thể nhấp vào nút “Save”. Bạn có thể đóng và mở lại sổ làm việc của mình một cách an toàn. Bạn thậm chí có thể gửi một bản sao sổ làm việc của mình cho người khác và họ có thể chạy mã bạn đã viết
Điều này hoàn thành bản demo. Bạn có thể bắt đầu sử dụng JADE miễn phí bằng cách lấy nó từ cửa hàng ứng dụng bổ trợ của Microsoft
Nhiêu tai nguyên hơnHướng dẫn đầy đủ về JADETrang hỗ trợ JADE. https. //ủng hộ. jsvba. com/
Tổng quan về API Excel JavaScript. https. // tài liệu. Microsoft. com/en-us/office/dev/add-ins/reference/overview/excel-add-ins-reference-overview
ExcelJS là một thư viện JavaScript để đọc, thao tác và ghi dữ liệu bảng tính ở định dạng XLSX
$ npm i exceljs
Chúng tôi cài đặt ExcelJS bằng lệnh
const ws = wb.addWorksheet['My Sheet'];5
xlsx
Trong bài viết này, chúng tôi làm việc với các tệp xlsx. xlsx là phần mở rộng tệp cho định dạng tệp bảng tính XML mở được sử dụng bởi Microsoft Excel. Các tệp xlsm hỗ trợ macro. xltm là các tệp mẫu hỗ trợ macro. Định dạng xls là định dạng nhị phân độc quyền trong khi xlsx dựa trên định dạng Office Open XML
Trong ví dụ đầu tiên, chúng tôi làm việc với các ô. Chúng tôi nhận được tham chiếu đến một ô có chức năng
const ws = wb.addWorksheet['My Sheet'];6
const Excel = require['exceljs']; const wb = new Excel.Workbook[]; const ws = wb.addWorksheet['My Sheet']; ws.addRows[[ [1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20]] ]; const v0 = ws.getCell['A1'].value; console.log[v0]; const v1 = ws.getCell[1, 1].value; console.log[v1]; const v2 = ws.getRow[2].getCell[2].value; console.log[v2];
Trong ví dụ này, chúng tôi thêm dữ liệu vào một trang tính và sau đó đọc chúng
const Excel = require['exceljs'];
Thư viện ExcelJS được nhập
const wb = new Excel.Workbook[];
Một sổ làm việc mới được tạo
const ws = wb.addWorksheet['My Sheet'];
const ws = wb.addWorksheet['My Sheet'];7 thêm một trang tính mới vào sổ làm việc________số 8_______
Hàm
const ws = wb.addWorksheet['My Sheet'];8 thêm các hàng dữ liệu vào trang tính
const v0 = ws.getCell['A1'].value; console.log[v0];
Chúng tôi đề cập đến ô trên cùng bên trái thông qua địa chỉ 'A1'; . Ta lấy giá trị của ô có thuộc tính
const ws = wb.addWorksheet['My Sheet'];9
const v1 = ws.getCell[1, 1].value; console.log[v1];
Một cách khác là chuyển số hàng và số cột cho hàm
const ws = wb.addWorksheet['My Sheet'];6
const v2 = ws.getRow[2].getCell[2].value; console.log[v2];
Cách thứ ba là xâu chuỗi các cuộc gọi
ws.addRows[[ [1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20]] ];1 và
const ws = wb.addWorksheet['My Sheet'];6
$ node app.js 1 1 7
ExcelJS ghi vào tập tin
Chúng tôi ghi dữ liệu vào một tệp bằng phương pháp
ws.addRows[[ [1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20]] ];3
const Excel = require['exceljs']; const wb = new Excel.Workbook[]; const ws = wb.addWorksheet['My Sheet']; ws.addRows[[ [1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20]] ]; const v0 = ws.getCell['A1'].value; console.log[v0]; const v1 = ws.getCell[1, 1].value; console.log[v1]; const v2 = ws.getRow[2].getCell[2].value; console.log[v2];0
Ví dụ thêm một số dữ liệu vào một trang tính và ghi dữ liệu đó vào tệp
ws.addRows[[ [1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20]] ];4
const Excel = require['exceljs']; const wb = new Excel.Workbook[]; const ws = wb.addWorksheet['My Sheet']; ws.addRows[[ [1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20]] ]; const v0 = ws.getCell['A1'].value; console.log[v0]; const v1 = ws.getCell[1, 1].value; console.log[v1]; const v2 = ws.getRow[2].getCell[2].value; console.log[v2];1
Chúng tôi ghi dữ liệu vào ba ô
const Excel = require['exceljs']; const wb = new Excel.Workbook[]; const ws = wb.addWorksheet['My Sheet']; ws.addRows[[ [1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20]] ]; const v0 = ws.getCell['A1'].value; console.log[v0]; const v1 = ws.getCell[1, 1].value; console.log[v1]; const v2 = ws.getRow[2].getCell[2].value; console.log[v2];2
Ngoài ra, chúng tôi thêm một mảng giá trị vào hàng thứ ba
const Excel = require['exceljs']; const wb = new Excel.Workbook[]; const ws = wb.addWorksheet['My Sheet']; ws.addRows[[ [1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20]] ]; const v0 = ws.getCell['A1'].value; console.log[v0]; const v1 = ws.getCell[1, 1].value; console.log[v1]; const v2 = ws.getRow[2].getCell[2].value; console.log[v2];3
Trang tính được ghi vào tệp bằng hàm
ws.addRows[[ [1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20]] ];3
Trong ví dụ sau, chúng tôi đọc từ tệp xlsx hiện có. Chúng tôi giả sử một số dữ liệu trong hai cột đầu tiên
const Excel = require['exceljs']; const wb = new Excel.Workbook[]; const ws = wb.addWorksheet['My Sheet']; ws.addRows[[ [1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20]] ]; const v0 = ws.getCell['A1'].value; console.log[v0]; const v1 = ws.getCell[1, 1].value; console.log[v1]; const v2 = ws.getRow[2].getCell[2].value; console.log[v2];4
Ví dụ đọc dữ liệu từ 2 cột của sheet
const Excel = require['exceljs']; const wb = new Excel.Workbook[]; const ws = wb.addWorksheet['My Sheet']; ws.addRows[[ [1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20]] ]; const v0 = ws.getCell['A1'].value; console.log[v0]; const v1 = ws.getCell[1, 1].value; console.log[v1]; const v2 = ws.getRow[2].getCell[2].value; console.log[v2];5
Để đọc dữ liệu của trang tính ta sử dụng hàm
ws.addRows[[ [1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20]] ];6
const Excel = require['exceljs']; const wb = new Excel.Workbook[]; const ws = wb.addWorksheet['My Sheet']; ws.addRows[[ [1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20]] ]; const v0 = ws.getCell['A1'].value; console.log[v0]; const v1 = ws.getCell[1, 1].value; console.log[v1]; const v2 = ws.getRow[2].getCell[2].value; console.log[v2];6
Ta có bảng tính với hàm
ws.addRows[[ [1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20]] ];7
const Excel = require['exceljs']; const wb = new Excel.Workbook[]; const ws = wb.addWorksheet['My Sheet']; ws.addRows[[ [1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20]] ]; const v0 = ws.getCell['A1'].value; console.log[v0]; const v1 = ws.getCell[1, 1].value; console.log[v1]; const v2 = ws.getRow[2].getCell[2].value; console.log[v2];7
Chúng tôi nhận được cột đầu tiên với
ws.addRows[[ [1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20]] ];8
const Excel = require['exceljs']; const wb = new Excel.Workbook[]; const ws = wb.addWorksheet['My Sheet']; ws.addRows[[ [1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20]] ]; const v0 = ws.getCell['A1'].value; console.log[v0]; const v1 = ws.getCell[1, 1].value; console.log[v1]; const v2 = ws.getRow[2].getCell[2].value; console.log[v2];8
Chúng tôi lặp lại các ô hiện tại bằng cách sử dụng hàm
ws.addRows[[ [1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20]] ];9
Cột ExcelJS
Trong ví dụ tiếp theo, chúng tôi làm việc với các cột
const Excel = require['exceljs']; const wb = new Excel.Workbook[]; const ws = wb.addWorksheet['My Sheet']; ws.addRows[[ [1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20]] ]; const v0 = ws.getCell['A1'].value; console.log[v0]; const v1 = ws.getCell[1, 1].value; console.log[v1]; const v2 = ws.getRow[2].getCell[2].value; console.log[v2];9
Chúng tôi xác định tiêu đề cột và lặp qua các ô cột
const Excel = require['exceljs'];0
Thông qua thuộc tính
const v0 = ws.getCell['A1'].value; console.log[v0];0, chúng tôi thêm các tiêu đề cột và xác định các khóa và chiều rộng của cột
const Excel = require['exceljs'];1
Chúng tôi thêm một số dữ liệu hàng với
const v0 = ws.getCell['A1'].value; console.log[v0];1
const Excel = require['exceljs'];2
Chúng tôi đề cập đến cột đầu tiên thông qua tên khóa.
ws.addRows[[ [1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20]] ];9 được sử dụng để lặp lại dữ liệu
const Excel = require['exceljs'];3
Ở đây, chúng tôi lấy cột theo chữ cái được chỉ định
const Excel = require['exceljs'];4
Cuối cùng, chúng tôi đề cập đến cột thứ ba thông qua giá trị chỉ mục
const Excel = require['exceljs'];5
Ta lấy số cột chứa dữ liệu với thuộc tính
const v0 = ws.getCell['A1'].value; console.log[v0];3
const Excel = require['exceljs'];6
Trong ví dụ đầu tiên, chúng tôi làm việc với các hàng
const Excel = require['exceljs'];7
Chúng tôi thêm dữ liệu với các hàm
const v0 = ws.getCell['A1'].value; console.log[v0];1 và
const ws = wb.addWorksheet['My Sheet'];8 và truy xuất các hàng dữ liệu với
const v0 = ws.getCell['A1'].value; console.log[v0];6
const Excel = require['exceljs'];8
Chúng tôi thêm một mảng các giá trị với
const v0 = ws.getCell['A1'].value; console.log[v0];1
const Excel = require['exceljs'];9
Ở đây, chúng tôi thêm dữ liệu bằng các cặp khóa/giá trị, trong đó mỗi khóa là tên khóa của cột
const wb = new Excel.Workbook[];0
Có thể thêm nhiều hàng với
const ws = wb.addWorksheet['My Sheet'];8
const wb = new Excel.Workbook[];1
Thuộc tính
const v0 = ws.getCell['A1'].value; console.log[v0];9 trả về số hàng có giá trị
const wb = new Excel.Workbook[];2
Chúng tôi nhận được các giá trị từ các hàng 1. 4
const wb = new Excel.Workbook[];3
Chúng tôi lặp qua các hàng và các ô của chúng
const wb = new Excel.Workbook[];4
ExcelJS tải CSV
ExcelJS cho phép đọc dữ liệu từ tệp CSV
const wb = new Excel.Workbook[];5
Chúng tôi có một số dữ liệu CSV đơn giản
const wb = new Excel.Workbook[];6
Trong ví dụ, chúng tôi đọc dữ liệu từ tệp
const v1 = ws.getCell[1, 1].value; console.log[v1];0, in nó ra bàn điều khiển và ghi nó vào tệp xlsx
const wb = new Excel.Workbook[];7
Chúng tôi đọc dữ liệu CSV bằng chức năng
ws.addRows[[ [1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20]] ];6 của thuộc tính
const v1 = ws.getCell[1, 1].value; console.log[v1];2
const wb = new Excel.Workbook[];8
Chúng tôi lặp lại dữ liệu với hai vòng lặp for
const wb = new Excel.Workbook[];9
Khi đọc xong ta gọi hàm
const v1 = ws.getCell[1, 1].value; console.log[v1];3
const ws = wb.addWorksheet['My Sheet'];0
Bên trong hàm
const v1 = ws.getCell[1, 1].value; console.log[v1];3, chúng tôi ghi dữ liệu trang tính vào tệp xlsx
Trong ví dụ tiếp theo, chúng tôi trình bày cách căn chỉnh dữ liệu trong ô. Chúng tôi có thể căn chỉnh nội dung theo chiều ngang và chiều dọc
const ws = wb.addWorksheet['My Sheet'];1
Để căn chỉnh nội dung, chúng tôi sử dụng các thuộc tính
const v1 = ws.getCell[1, 1].value; console.log[v1];5 và
const v1 = ws.getCell[1, 1].value; console.log[v1];6
Trong ví dụ tiếp theo, chúng ta tạo một siêu liên kết
const ws = wb.addWorksheet['My Sheet'];2
Để tạo một siêu liên kết, chúng tôi sử dụng thuộc tính
const v1 = ws.getCell[1, 1].value; console.log[v1];7 của thuộc tính giá trị ô. Chúng tôi làm cho văn bản được gạch dưới với thuộc tính
const v1 = ws.getCell[1, 1].value; console.log[v1];8