Làm cách nào để viết trong Excel bằng JavaScript?

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ắn

Hã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ơn

Hướng dẫn đầy đủ về JADE

Trang 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

Chúng ta có thể viết JavaScript trong Excel không?

Một phần bổ trợ Excel tương tác với các đối tượng trong Excel bằng cách sử dụng API JavaScript của Office, bao gồm hai mô hình đối tượng JavaScript . API JavaScript của Excel. Được giới thiệu với Office 2016, API JavaScript của Excel cung cấp các đối tượng được nhập mạnh mà bạn có thể sử dụng để truy nhập trang tính, phạm vi, bảng, biểu đồ, v.v.

Làm cách nào để tạo tệp Excel bằng JavaScript?

Sử dụng hàm saveAs() và tạo một đối tượng Blob mới từ mảng octet . Đặt loại nội dung là octet-stream. làm theo tên tệp excel mà bạn muốn. saveAs(new Blob([s2ab(wbout)],{type. "ứng dụng/octet-stream"}), 'kiểm tra.

Làm cách nào để sử dụng JavaScript trong Excel trực tuyến?

Có hai cách để thực hiện việc này. Sử dụng trực tiếp API Excel Online. .
Cài đặt gói JavaScript với npm
Chạy yêu cầu API Excel Online bằng JavaScript
Tạo và sử dụng API sheet2api của riêng bạn

Làm cách nào để liên kết Excel với JavaScript?

Cách sử dụng Javascript với Excel .
Tạo khối Javascript của bạn. Khối này cho trình duyệt web biết rằng mã được chứa là tập lệnh thực thi. .
Khởi tạo biến ứng dụng Excel. .
Tạo bảng tính và kích hoạt nó. .
Viết một số văn bản vào trang tính Excel. .
Lưu tệp Excel