Hướng dẫn sheet_add_json example - ví dụ sheet_add_json

Đây là những gì làm việc với tôi..Sau khi gặp lỗi

var ws = XLSX.utils.aoa_to_sheet([
["S", "h", "e", "e", "t", "J", "S"],
[ 1, 2, , , 5, 6, 7],
[ 2, 3, , , 6, 7, 8],
[ 3, 4, , , 7, 8, 9],
[ 4, 5, 6, 7, 8, 9, 0]
]);
9
var ws = XLSX.utils.aoa_to_sheet([
["S", "h", "e", "e", "t", "J", "S"],
[ 1, 2, , , 5, 6, 7],
[ 2, 3, , , 6, 7, 8],
[ 3, 4, , , 7, 8, 9],
[ 4, 5, 6, 7, 8, 9, 0]
]);
9

var wb = XLSX.readFile('./data.xlsx');
const ws = XLSX.utils.sheet_add_json(
wb.Sheets.Sheet1, // worksheet
		[{ number: 12345 }], // data
		{ // options
			header: ["number"], // properties to read from each object
			skipHeader: true, // do not include header row
			origin: "A3" // start from cell F6
		}
	);

	XLSX.utils.book_append_sheet(wb, ws)
	XLSX.writeFile(wb, 'data.xlsx');```

Các hàm

XLSX.utils.sheet_add_aoa(ws, aoa, opts);
0 chấp nhận một bảng tính và đối tượng tùy chọn tùy chọn.

Các hàm

XLSX.utils.sheet_add_aoa(ws, aoa, opts);
1 chấp nhận một đối tượng dữ liệu và đối tượng tùy chọn tùy chọn.

Các hàm

XLSX.utils.sheet_add_aoa(ws, aoa, opts);
2 chấp nhận bảng tính, dữ liệu và các tùy chọn tùy chọn.

Các ví dụ dựa trên bảng tính sau:

SheetJS
1 2 5 6 7
2 3 6 7 8
3 4 7 8 9
4 5 6 7 8 9 0

h

e

var ws = XLSX.utils.aoa_to_sheet(aoa, opts);

t

  • J
  • Mảng đầu vào mảng
  • Tạo một bảng tính từ một mảng mảng
  • XLSX.utils.sheet_add_aoa(ws, aoa, opts);
    3 lấy một mảng các mảng của các giá trị JS và trả về một bảng tính giống như dữ liệu đầu vào. Các giá trị được giải thích như sau:
  • Số, booleans và chuỗi được lưu trữ dưới dạng các loại tương ứng.

Đối tượng ngày được lưu trữ dưới dạng ô hoặc mã ngày (xem tùy chọn

XLSX.utils.sheet_add_aoa(ws, aoa, opts);
4)

Các lỗ mảng và các giá trị
XLSX.utils.sheet_add_aoa(ws, aoa, opts);
5 rõ ràng bị bỏ qua.
XLSX.utils.sheet_add_aoa(ws, aoa, opts);
6 Các giá trị có thể bị bắt giữ (xem các tùy chọn
XLSX.utils.sheet_add_aoa(ws, aoa, opts);
7 và
XLSX.utils.sheet_add_aoa(ws, aoa, opts);
8)
Các đối tượng tế bào được sử dụng AS-IS.
Hàm có đối số tùy chọn:Tên tùy chọnMặc định
Sự mô tả
XLSX.utils.sheet_add_aoa(ws, aoa, opts);
9
FMT 14
Sử dụng định dạng ngày được chỉ định trong đầu ra chuỗi
XLSX.utils.sheet_add_aoa(ws, aoa, opts);
9
FMT 14
Sử dụng định dạng ngày được chỉ định trong đầu ra chuỗi
XLSX.utils.sheet_add_aoa(ws, aoa, opts);
9
FMT 14

Sử dụng định dạng ngày được chỉ định trong đầu ra chuỗi

var ws = XLSX.utils.aoa_to_sheet([
["S", "h", "e", "e", "t", "J", "S"],
[ 1, 2, , , 5, 6, 7],
[ 2, 3, , , 6, 7, 8],
[ 3, 4, , , 7, 8, 9],
[ 4, 5, 6, 7, 8, 9, 0]
]);

XLSX.utils.sheet_add_aoa(ws, aoa, opts);
4

XLSX.utils.sheet_add_aoa(ws, aoa, opts);

sai

Các lỗ mảng và các giá trị
XLSX.utils.sheet_add_aoa(ws, aoa, opts);
5 rõ ràng bị bỏ qua.
XLSX.utils.sheet_add_aoa(ws, aoa, opts);
6 Các giá trị có thể bị bắt giữ (xem các tùy chọn
XLSX.utils.sheet_add_aoa(ws, aoa, opts);
7 và
XLSX.utils.sheet_add_aoa(ws, aoa, opts);
8)
Các đối tượng tế bào được sử dụng AS-IS.
Hàm có đối số tùy chọn:Tên tùy chọnMặc định
Sự mô tả
XLSX.utils.sheet_add_aoa(ws, aoa, opts);
9
FMT 14
Sử dụng định dạng ngày được chỉ định trong đầu ra chuỗi
XLSX.utils.sheet_add_aoa(ws, aoa, opts);
9
FMT 14
Sử dụng định dạng ngày được chỉ định trong đầu ra chuỗi
XLSX.utils.sheet_add_aoa(ws, aoa, opts);
9
FMT 14
Sử dụng định dạng ngày được chỉ định trong đầu ra chuỗi
XLSX.utils.sheet_add_aoa(ws, aoa, opts);
4

sai

const aoo_with_id = await coll.find({}).toArray();
const ws = XLSX.utils.json_to_sheet(aoo_with_id); // includes _id column
1
Các đối tượng tế bào được sử dụng AS-IS.
Hàm có đối số tùy chọn:Tên tùy chọn
Mặc địnhSự mô tả
XLSX.utils.sheet_add_aoa(ws, aoa, opts);
9
FMT 14
-1 Sử dụng định dạng ngày được chỉ định trong đầu ra chuỗi
XLSX.utils.sheet_add_aoa(ws, aoa, opts);
4
sai

Lưu trữ ngày là loại

/* Initial row */
var ws = XLSX.utils.aoa_to_sheet([ "SheetJS".split("") ]);

/* Write data starting at A2 */
XLSX.utils.sheet_add_aoa(ws, [[1,2], [2,3], [3,4]], {origin: "A2"});

/* Write data starting at E2 */
XLSX.utils.sheet_add_aoa(ws, [[5,6,7], [6,7,8], [7,8,9]], {origin:{r:1, c:4}});

/* Append row */
XLSX.utils.sheet_add_aoa(ws, [[4,5,6,7,8,9,0]], {origin: -1});
1 (mặc định là
/* Initial row */
var ws = XLSX.utils.aoa_to_sheet([ "SheetJS".split("") ]);

/* Write data starting at A2 */
XLSX.utils.sheet_add_aoa(ws, [[1,2], [2,3], [3,4]], {origin: "A2"});

/* Write data starting at E2 */
XLSX.utils.sheet_add_aoa(ws, [[5,6,7], [6,7,8], [7,8,9]], {origin:{r:1, c:4}});

/* Append row */
XLSX.utils.sheet_add_aoa(ws, [[4,5,6,7,8,9,0]], {origin: -1});
2)

/* Initial row */
var ws = XLSX.utils.aoa_to_sheet([ "SheetJS".split("") ]);

/* Write data starting at A2 */
XLSX.utils.sheet_add_aoa(ws, [[1,2], [2,3], [3,4]], {origin: "A2"});

/* Write data starting at E2 */
XLSX.utils.sheet_add_aoa(ws, [[5,6,7], [6,7,8], [7,8,9]], {origin:{r:1, c:4}});

/* Append row */
XLSX.utils.sheet_add_aoa(ws, [[4,5,6,7,8,9,0]], {origin: -1});

XLSX.utils.sheet_add_aoa(ws, aoa, opts);7

Tạo các đối tượng ô thuộc loại

/* Initial row */
var ws = XLSX.utils.aoa_to_sheet([ "SheetJS".split("") ]);

/* Write data starting at A2 */
XLSX.utils.sheet_add_aoa(ws, [[1,2], [2,3], [3,4]], {origin: "A2"});

/* Write data starting at E2 */
XLSX.utils.sheet_add_aoa(ws, [[5,6,7], [6,7,8], [7,8,9]], {origin:{r:1, c:4}});

/* Append row */
XLSX.utils.sheet_add_aoa(ws, [[4,5,6,7,8,9,0]], {origin: -1});
4 cho các giá trị
XLSX.utils.sheet_add_aoa(ws, aoa, opts);
6

var ws = XLSX.utils.json_to_sheet(aoo, opts);

XLSX.utils.sheet_add_aoa(ws, aoa, opts);
8

Các lỗ mảng và các giá trị
XLSX.utils.sheet_add_aoa(ws, aoa, opts);
5 rõ ràng bị bỏ qua.
XLSX.utils.sheet_add_aoa(ws, aoa, opts);
6 Các giá trị có thể bị bắt giữ (xem các tùy chọn
XLSX.utils.sheet_add_aoa(ws, aoa, opts);
7 và
XLSX.utils.sheet_add_aoa(ws, aoa, opts);
8)
Các đối tượng tế bào được sử dụng AS-IS.
Hàm có đối số tùy chọn: Tên tùy chọn
Hàm có đối số tùy chọn:Tên tùy chọnMặc định
Sự mô tả
XLSX.utils.sheet_add_aoa(ws, aoa, opts);
9
FMT 14
Sử dụng định dạng ngày được chỉ định trong đầu ra chuỗi
XLSX.utils.sheet_add_aoa(ws, aoa, opts);
9
FMT 14
Sử dụng định dạng ngày được chỉ định trong đầu ra chuỗi
XLSX.utils.sheet_add_aoa(ws, aoa, opts);
9
FMT 14

Sử dụng định dạng ngày được chỉ định trong đầu ra chuỗi

XLSX.utils.sheet_add_aoa(ws, aoa, opts);
4

sai

const aoo_with_id = await coll.find({}).toArray();
const ws = XLSX.utils.json_to_sheet(aoo_with_id); // includes _id column

Lưu trữ ngày là loại

/* Initial row */
var ws = XLSX.utils.aoa_to_sheet([ "SheetJS".split("") ]);

/* Write data starting at A2 */
XLSX.utils.sheet_add_aoa(ws, [[1,2], [2,3], [3,4]], {origin: "A2"});

/* Write data starting at E2 */
XLSX.utils.sheet_add_aoa(ws, [[5,6,7], [6,7,8], [7,8,9]], {origin:{r:1, c:4}});

/* Append row */
XLSX.utils.sheet_add_aoa(ws, [[4,5,6,7,8,9,0]], {origin: -1});
1 (mặc định là
/* Initial row */
var ws = XLSX.utils.aoa_to_sheet([ "SheetJS".split("") ]);

/* Write data starting at A2 */
XLSX.utils.sheet_add_aoa(ws, [[1,2], [2,3], [3,4]], {origin: "A2"});

/* Write data starting at E2 */
XLSX.utils.sheet_add_aoa(ws, [[5,6,7], [6,7,8], [7,8,9]], {origin:{r:1, c:4}});

/* Append row */
XLSX.utils.sheet_add_aoa(ws, [[4,5,6,7,8,9,0]], {origin: -1});
2)

const aoo = await coll.find({}, {projection:{_id:0}}).toArray(); // no _id !
const ws = XLSX.utils.json_to_sheet(aoo);

XLSX.utils.sheet_add_aoa(ws, aoa, opts);
7

const aoo = data.map(obj => Object.fromEntries(Object.entries(obj).filter(r => headers.indexOf(r[0]) > -1)));

  • Tạo các đối tượng ô thuộc loại
    /* Initial row */
    var ws = XLSX.utils.aoa_to_sheet([ "SheetJS".split("") ]);

    /* Write data starting at A2 */
    XLSX.utils.sheet_add_aoa(ws, [[1,2], [2,3], [3,4]], {origin: "A2"});

    /* Write data starting at E2 */
    XLSX.utils.sheet_add_aoa(ws, [[5,6,7], [6,7,8], [7,8,9]], {origin:{r:1, c:4}});

    /* Append row */
    XLSX.utils.sheet_add_aoa(ws, [[4,5,6,7,8,9,0]], {origin: -1});
    4 cho các giá trị
    XLSX.utils.sheet_add_aoa(ws, aoa, opts);
    6
  • XLSX.utils.sheet_add_aoa(ws, aoa, opts);
    8
  • Nếu đúng, hãy phát ra các ô lỗi
    /* Initial row */
    var ws = XLSX.utils.aoa_to_sheet([ "SheetJS".split("") ]);

    /* Write data starting at A2 */
    XLSX.utils.sheet_add_aoa(ws, [[1,2], [2,3], [3,4]], {origin: "A2"});

    /* Write data starting at E2 */
    XLSX.utils.sheet_add_aoa(ws, [[5,6,7], [6,7,8], [7,8,9]], {origin:{r:1, c:4}});

    /* Append row */
    XLSX.utils.sheet_add_aoa(ws, [[4,5,6,7,8,9,0]], {origin: -1});
    7 cho các giá trị
    XLSX.utils.sheet_add_aoa(ws, aoa, opts);
    6

Bảng tính ví dụ có thể được tạo bằng:

var ws = XLSX.utils.json_to_sheet([
{ S:1, h:2, , , t:5, J:6, S_1:7 },
{ S:2, h:3, , , t:6, J:7, S_1:8 }
{ S:3, h:4, , , t:7, J:8, S_1:9 }
{ S:4, h:5, e:6, e_1:7, t:8, J:9, S_1:0 }
], {header:["S","h","e","e_1","t","J","S_1"]});

Thêm dữ liệu từ một mảng mảng vào bảng tính hiện có

var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
0

Thêm dữ liệu từ một mảng các đối tượng vào bảng tính hiện có

var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
1

var ws = XLSX.utils.json_to_sheet([
{ S:1, h:2, , , t:5, J:6, S_1:7 },
{ S:2, h:3, , , t:6, J:7, S_1:8 }
{ S:3, h:4, , , t:7, J:8, S_1:9 }
{ S:4, h:5, e:6, e_1:7, t:8, J:9, S_1:0 }
], {header:["S","h","e","e_1","t","J","S_1"]});
0 lấy một mảng các đối tượng và cập nhật một đối tượng bảng tính hiện có. Nó theo quy trình tương tự như
var ws = XLSX.utils.json_to_sheet([
{ S:1, h:2, , , t:5, J:6, S_1:7 },
{ S:2, h:3, , , t:6, J:7, S_1:8 }
{ S:3, h:4, , , t:7, J:8, S_1:9 }
{ S:4, h:5, e:6, e_1:7, t:8, J:9, S_1:0 }
], {header:["S","h","e","e_1","t","J","S_1"]});
1 và chấp nhận đối số tùy chọn:

Tên tùy chọnMặc địnhSự mô tả
const aoo_with_id = await coll.find({}).toArray();
const ws = XLSX.utils.json_to_sheet(aoo_with_id); // includes _id column
8
Sử dụng thứ tự cột được chỉ định (mặc định
const aoo_with_id = await coll.find({}).toArray();
const ws = XLSX.utils.json_to_sheet(aoo_with_id); // includes _id column
7)
XLSX.utils.sheet_add_aoa(ws, aoa, opts);
9
FMT 14Sử dụng định dạng ngày được chỉ định trong đầu ra chuỗi
XLSX.utils.sheet_add_aoa(ws, aoa, opts);
4
saiLưu trữ ngày là loại
/* Initial row */
var ws = XLSX.utils.aoa_to_sheet([ "SheetJS".split("") ]);

/* Write data starting at A2 */
XLSX.utils.sheet_add_aoa(ws, [[1,2], [2,3], [3,4]], {origin: "A2"});

/* Write data starting at E2 */
XLSX.utils.sheet_add_aoa(ws, [[5,6,7], [6,7,8], [7,8,9]], {origin:{r:1, c:4}});

/* Append row */
XLSX.utils.sheet_add_aoa(ws, [[4,5,6,7,8,9,0]], {origin: -1});
1 (mặc định là
/* Initial row */
var ws = XLSX.utils.aoa_to_sheet([ "SheetJS".split("") ]);

/* Write data starting at A2 */
XLSX.utils.sheet_add_aoa(ws, [[1,2], [2,3], [3,4]], {origin: "A2"});

/* Write data starting at E2 */
XLSX.utils.sheet_add_aoa(ws, [[5,6,7], [6,7,8], [7,8,9]], {origin:{r:1, c:4}});

/* Append row */
XLSX.utils.sheet_add_aoa(ws, [[4,5,6,7,8,9,0]], {origin: -1});
2)
const aoo = await coll.find({}, {projection:{_id:0}}).toArray(); // no _id !
const ws = XLSX.utils.json_to_sheet(aoo);
4
saiLưu trữ ngày là loại
/* Initial row */
var ws = XLSX.utils.aoa_to_sheet([ "SheetJS".split("") ]);

/* Write data starting at A2 */
XLSX.utils.sheet_add_aoa(ws, [[1,2], [2,3], [3,4]], {origin: "A2"});

/* Write data starting at E2 */
XLSX.utils.sheet_add_aoa(ws, [[5,6,7], [6,7,8], [7,8,9]], {origin:{r:1, c:4}});

/* Append row */
XLSX.utils.sheet_add_aoa(ws, [[4,5,6,7,8,9,0]], {origin: -1});
1 (mặc định là
/* Initial row */
var ws = XLSX.utils.aoa_to_sheet([ "SheetJS".split("") ]);

/* Write data starting at A2 */
XLSX.utils.sheet_add_aoa(ws, [[1,2], [2,3], [3,4]], {origin: "A2"});

/* Write data starting at E2 */
XLSX.utils.sheet_add_aoa(ws, [[5,6,7], [6,7,8], [7,8,9]], {origin:{r:1, c:4}});

/* Append row */
XLSX.utils.sheet_add_aoa(ws, [[4,5,6,7,8,9,0]], {origin: -1});
2)
const aoo = await coll.find({}, {projection:{_id:0}}).toArray(); // no _id !
const ws = XLSX.utils.json_to_sheet(aoo);
4
saiLưu trữ ngày là loại
/* Initial row */
var ws = XLSX.utils.aoa_to_sheet([ "SheetJS".split("") ]);

/* Write data starting at A2 */
XLSX.utils.sheet_add_aoa(ws, [[1,2], [2,3], [3,4]], {origin: "A2"});

/* Write data starting at E2 */
XLSX.utils.sheet_add_aoa(ws, [[5,6,7], [6,7,8], [7,8,9]], {origin:{r:1, c:4}});

/* Append row */
XLSX.utils.sheet_add_aoa(ws, [[4,5,6,7,8,9,0]], {origin: -1});
1 (mặc định là
/* Initial row */
var ws = XLSX.utils.aoa_to_sheet([ "SheetJS".split("") ]);

/* Write data starting at A2 */
XLSX.utils.sheet_add_aoa(ws, [[1,2], [2,3], [3,4]], {origin: "A2"});

/* Write data starting at E2 */
XLSX.utils.sheet_add_aoa(ws, [[5,6,7], [6,7,8], [7,8,9]], {origin:{r:1, c:4}});

/* Append row */
XLSX.utils.sheet_add_aoa(ws, [[4,5,6,7,8,9,0]], {origin: -1});
2)
const aoo = await coll.find({}, {projection:{_id:0}}).toArray(); // no _id !
const ws = XLSX.utils.json_to_sheet(aoo);
4
Nếu đúng, không bao gồm hàng tiêu đề trong đầu ra

XLSX.utils.sheet_add_aoa(ws, aoa, opts);
8

const aoo_with_id = await coll.find({}).toArray();
const ws = XLSX.utils.json_to_sheet(aoo_with_id); // includes _id column
1
Sự mô tả
const aoo_with_id = await coll.find({}).toArray();
const ws = XLSX.utils.json_to_sheet(aoo_with_id); // includes _id column
8
Sử dụng thứ tự cột được chỉ định (mặc định
const aoo_with_id = await coll.find({}).toArray();
const ws = XLSX.utils.json_to_sheet(aoo_with_id); // includes _id column
7)
XLSX.utils.sheet_add_aoa(ws, aoa, opts);
9
FMT 14
Sử dụng định dạng ngày được chỉ định trong đầu ra chuỗi
XLSX.utils.sheet_add_aoa(ws, aoa, opts);
4
-1 sai
Lưu trữ ngày là loại
/* Initial row */
var ws = XLSX.utils.aoa_to_sheet([ "SheetJS".split("") ]);

/* Write data starting at A2 */
XLSX.utils.sheet_add_aoa(ws, [[1,2], [2,3], [3,4]], {origin: "A2"});

/* Write data starting at E2 */
XLSX.utils.sheet_add_aoa(ws, [[5,6,7], [6,7,8], [7,8,9]], {origin:{r:1, c:4}});

/* Append row */
XLSX.utils.sheet_add_aoa(ws, [[4,5,6,7,8,9,0]], {origin: -1});
1 (mặc định là
/* Initial row */
var ws = XLSX.utils.aoa_to_sheet([ "SheetJS".split("") ]);

/* Write data starting at A2 */
XLSX.utils.sheet_add_aoa(ws, [[1,2], [2,3], [3,4]], {origin: "A2"});

/* Write data starting at E2 */
XLSX.utils.sheet_add_aoa(ws, [[5,6,7], [6,7,8], [7,8,9]], {origin:{r:1, c:4}});

/* Append row */
XLSX.utils.sheet_add_aoa(ws, [[4,5,6,7,8,9,0]], {origin: -1});
2)
const aoo = await coll.find({}, {projection:{_id:0}}).toArray(); // no _id !
const ws = XLSX.utils.json_to_sheet(aoo);
4

Nếu đúng, không bao gồm hàng tiêu đề trong đầu ra

var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
2

XLSX.utils.sheet_add_aoa(ws, aoa, opts);
8

Nếu đúng, hãy phát ra các ô lỗi

/* Initial row */
var ws = XLSX.utils.aoa_to_sheet([ "SheetJS".split("") ]);

/* Write data starting at A2 */
XLSX.utils.sheet_add_aoa(ws, [[1,2], [2,3], [3,4]], {origin: "A2"});

/* Write data starting at E2 */
XLSX.utils.sheet_add_aoa(ws, [[5,6,7], [6,7,8], [7,8,9]], {origin:{r:1, c:4}});

/* Append row */
XLSX.utils.sheet_add_aoa(ws, [[4,5,6,7,8,9,0]], {origin: -1});
7 cho các giá trị
XLSX.utils.sheet_add_aoa(ws, aoa, opts);
6

const aoo_with_id = await coll.find({}).toArray();
const ws = XLSX.utils.json_to_sheet(aoo_with_id); // includes _id column
1

Sử dụng ô được chỉ định làm điểm bắt đầu (xem bên dưới)

const aoo_with_id = await coll.find({}).toArray();
const ws = XLSX.utils.json_to_sheet(aoo_with_id); // includes _id column
1 dự kiến ​​sẽ là một trong những:

var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
3

(đối tượng di động)

Sử dụng ô được chỉ định (đối tượng ô)

(sợi dây)

Tên tùy chọnMặc địnhSự mô tả
Sử dụng ô được chỉ định (ô kiểu A1) (Số> = 0)
XLSX.utils.sheet_add_aoa(ws, aoa, opts);
9
FMT 14Sử dụng định dạng ngày được chỉ định trong đầu ra chuỗi
XLSX.utils.sheet_add_aoa(ws, aoa, opts);
4
saiLưu trữ ngày là loại
/* Initial row */
var ws = XLSX.utils.aoa_to_sheet([ "SheetJS".split("") ]);

/* Write data starting at A2 */
XLSX.utils.sheet_add_aoa(ws, [[1,2], [2,3], [3,4]], {origin: "A2"});

/* Write data starting at E2 */
XLSX.utils.sheet_add_aoa(ws, [[5,6,7], [6,7,8], [7,8,9]], {origin:{r:1, c:4}});

/* Append row */
XLSX.utils.sheet_add_aoa(ws, [[4,5,6,7,8,9,0]], {origin: -1});
1 (mặc định là
/* Initial row */
var ws = XLSX.utils.aoa_to_sheet([ "SheetJS".split("") ]);

/* Write data starting at A2 */
XLSX.utils.sheet_add_aoa(ws, [[1,2], [2,3], [3,4]], {origin: "A2"});

/* Write data starting at E2 */
XLSX.utils.sheet_add_aoa(ws, [[5,6,7], [6,7,8], [7,8,9]], {origin:{r:1, c:4}});

/* Append row */
XLSX.utils.sheet_add_aoa(ws, [[4,5,6,7,8,9,0]], {origin: -1});
2)
const aoo = await coll.find({}, {projection:{_id:0}}).toArray(); // no _id !
const ws = XLSX.utils.json_to_sheet(aoo);
4
0 Nếu đúng, không bao gồm hàng tiêu đề trong đầu ra
XLSX.utils.sheet_add_aoa(ws, aoa, opts);
8
saiLưu trữ ngày là loại
/* Initial row */
var ws = XLSX.utils.aoa_to_sheet([ "SheetJS".split("") ]);

/* Write data starting at A2 */
XLSX.utils.sheet_add_aoa(ws, [[1,2], [2,3], [3,4]], {origin: "A2"});

/* Write data starting at E2 */
XLSX.utils.sheet_add_aoa(ws, [[5,6,7], [6,7,8], [7,8,9]], {origin:{r:1, c:4}});

/* Append row */
XLSX.utils.sheet_add_aoa(ws, [[4,5,6,7,8,9,0]], {origin: -1});
1 (mặc định là
/* Initial row */
var ws = XLSX.utils.aoa_to_sheet([ "SheetJS".split("") ]);

/* Write data starting at A2 */
XLSX.utils.sheet_add_aoa(ws, [[1,2], [2,3], [3,4]], {origin: "A2"});

/* Write data starting at E2 */
XLSX.utils.sheet_add_aoa(ws, [[5,6,7], [6,7,8], [7,8,9]], {origin:{r:1, c:4}});

/* Append row */
XLSX.utils.sheet_add_aoa(ws, [[4,5,6,7,8,9,0]], {origin: -1});
2)

const aoo = await coll.find({}, {projection:{_id:0}}).toArray(); // no _id !
const ws = XLSX.utils.json_to_sheet(aoo);
4

var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
4

XLSX.utils.sheet_add_aoa(ws, aoa, opts);
8

Nếu đúng, hãy phát ra các ô lỗi

/* Initial row */
var ws = XLSX.utils.aoa_to_sheet([ "SheetJS".split("") ]);

/* Write data starting at A2 */
XLSX.utils.sheet_add_aoa(ws, [[1,2], [2,3], [3,4]], {origin: "A2"});

/* Write data starting at E2 */
XLSX.utils.sheet_add_aoa(ws, [[5,6,7], [6,7,8], [7,8,9]], {origin:{r:1, c:4}});

/* Append row */
XLSX.utils.sheet_add_aoa(ws, [[4,5,6,7,8,9,0]], {origin: -1});
7 cho các giá trị
XLSX.utils.sheet_add_aoa(ws, aoa, opts);
6

const aoo_with_id = await coll.find({}).toArray();
const ws = XLSX.utils.json_to_sheet(aoo_with_id); // includes _id column
1

var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
5

Sử dụng ô được chỉ định làm điểm bắt đầu (xem bên dưới)

var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
6

const aoo_with_id = await coll.find({}).toArray();
const ws = XLSX.utils.json_to_sheet(aoo_with_id); // includes _id column
1 dự kiến ​​sẽ là một trong những:

var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
7

(đối tượng di động)

Tên tùy chọnMặc địnhSự mô tả
Sử dụng ô được chỉ định (ô kiểu A1) (Số> = 0)
XLSX.utils.sheet_add_aoa(ws, aoa, opts);
9
FMT 14Sử dụng định dạng ngày được chỉ định trong đầu ra chuỗi
XLSX.utils.sheet_add_aoa(ws, aoa, opts);
4
saiLưu trữ ngày là loại
/* Initial row */
var ws = XLSX.utils.aoa_to_sheet([ "SheetJS".split("") ]);

/* Write data starting at A2 */
XLSX.utils.sheet_add_aoa(ws, [[1,2], [2,3], [3,4]], {origin: "A2"});

/* Write data starting at E2 */
XLSX.utils.sheet_add_aoa(ws, [[5,6,7], [6,7,8], [7,8,9]], {origin:{r:1, c:4}});

/* Append row */
XLSX.utils.sheet_add_aoa(ws, [[4,5,6,7,8,9,0]], {origin: -1});
1 (mặc định là
/* Initial row */
var ws = XLSX.utils.aoa_to_sheet([ "SheetJS".split("") ]);

/* Write data starting at A2 */
XLSX.utils.sheet_add_aoa(ws, [[1,2], [2,3], [3,4]], {origin: "A2"});

/* Write data starting at E2 */
XLSX.utils.sheet_add_aoa(ws, [[5,6,7], [6,7,8], [7,8,9]], {origin:{r:1, c:4}});

/* Append row */
XLSX.utils.sheet_add_aoa(ws, [[4,5,6,7,8,9,0]], {origin: -1});
2)
const aoo = await coll.find({}, {projection:{_id:0}}).toArray(); // no _id !
const ws = XLSX.utils.json_to_sheet(aoo);
4
0 Nếu đúng, không bao gồm hàng tiêu đề trong đầu ra
XLSX.utils.sheet_add_aoa(ws, aoa, opts);
8
saiLưu trữ ngày là loại
/* Initial row */
var ws = XLSX.utils.aoa_to_sheet([ "SheetJS".split("") ]);

/* Write data starting at A2 */
XLSX.utils.sheet_add_aoa(ws, [[1,2], [2,3], [3,4]], {origin: "A2"});

/* Write data starting at E2 */
XLSX.utils.sheet_add_aoa(ws, [[5,6,7], [6,7,8], [7,8,9]], {origin:{r:1, c:4}});

/* Append row */
XLSX.utils.sheet_add_aoa(ws, [[4,5,6,7,8,9,0]], {origin: -1});
1 (mặc định là
/* Initial row */
var ws = XLSX.utils.aoa_to_sheet([ "SheetJS".split("") ]);

/* Write data starting at A2 */
XLSX.utils.sheet_add_aoa(ws, [[1,2], [2,3], [3,4]], {origin: "A2"});

/* Write data starting at E2 */
XLSX.utils.sheet_add_aoa(ws, [[5,6,7], [6,7,8], [7,8,9]], {origin:{r:1, c:4}});

/* Append row */
XLSX.utils.sheet_add_aoa(ws, [[4,5,6,7,8,9,0]], {origin: -1});
2)

XLSX.utils.sheet_add_aoa(ws, aoa, opts);
8

const aoo_with_id = await coll.find({}).toArray();
const ws = XLSX.utils.json_to_sheet(aoo_with_id); // includes _id column
1
Sự mô tả
const aoo_with_id = await coll.find({}).toArray();
const ws = XLSX.utils.json_to_sheet(aoo_with_id); // includes _id column
8
Sử dụng thứ tự cột được chỉ định (mặc định
const aoo_with_id = await coll.find({}).toArray();
const ws = XLSX.utils.json_to_sheet(aoo_with_id); // includes _id column
7)
XLSX.utils.sheet_add_aoa(ws, aoa, opts);
9
FMT 14
Sử dụng định dạng ngày được chỉ định trong đầu ra chuỗi
XLSX.utils.sheet_add_aoa(ws, aoa, opts);
4
-1 sai
Lưu trữ ngày là loại
/* Initial row */
var ws = XLSX.utils.aoa_to_sheet([ "SheetJS".split("") ]);

/* Write data starting at A2 */
XLSX.utils.sheet_add_aoa(ws, [[1,2], [2,3], [3,4]], {origin: "A2"});

/* Write data starting at E2 */
XLSX.utils.sheet_add_aoa(ws, [[5,6,7], [6,7,8], [7,8,9]], {origin:{r:1, c:4}});

/* Append row */
XLSX.utils.sheet_add_aoa(ws, [[4,5,6,7,8,9,0]], {origin: -1});
1 (mặc định là
/* Initial row */
var ws = XLSX.utils.aoa_to_sheet([ "SheetJS".split("") ]);

/* Write data starting at A2 */
XLSX.utils.sheet_add_aoa(ws, [[1,2], [2,3], [3,4]], {origin: "A2"});

/* Write data starting at E2 */
XLSX.utils.sheet_add_aoa(ws, [[5,6,7], [6,7,8], [7,8,9]], {origin:{r:1, c:4}});

/* Append row */
XLSX.utils.sheet_add_aoa(ws, [[4,5,6,7,8,9,0]], {origin: -1});
2)
const aoo = await coll.find({}, {projection:{_id:0}}).toArray(); // no _id !
const ws = XLSX.utils.json_to_sheet(aoo);
4

Nếu đúng, không bao gồm hàng tiêu đề trong đầu ra

Hướng dẫn sheet_add_json example - ví dụ sheet_add_json

{headers[0]}

{headers[1]}

{headers[2]}

XLSX.utils.sheet_add_aoa(ws, aoa, opts);
8

Nếu đúng, hãy phát ra các ô lỗi /* Initial row */var ws = XLSX.utils.aoa_to_sheet([ "SheetJS".split("") ]);/* Write data starting at A2 */XLSX.utils.sheet_add_aoa(ws, [[1,2], [2,3], [3,4]], {origin: "A2"});/* Write data starting at E2 */XLSX.utils.sheet_add_aoa(ws, [[5,6,7], [6,7,8], [7,8,9]], {origin:{r:1, c:4}});/* Append row */XLSX.utils.sheet_add_aoa(ws, [[4,5,6,7,8,9,0]], {origin: -1});7 cho các giá trị XLSX.utils.sheet_add_aoa(ws, aoa, opts);6

const aoo_with_id = await coll.find({}).toArray();
const ws = XLSX.utils.json_to_sheet(aoo_with_id); // includes _id column
1

Sử dụng ô được chỉ định làm điểm bắt đầu (xem bên dưới)

const aoo_with_id = await coll.find({}).toArray();
const ws = XLSX.utils.json_to_sheet(aoo_with_id); // includes _id column
1 dự kiến ​​sẽ là một trong những:
Sự mô tả
(đối tượng di động)Sử dụng ô được chỉ định (đối tượng ô)
(sợi dây)Sử dụng ô được chỉ định (ô kiểu A1)
(Số> = 0)Bắt đầu từ cột đầu tiên tại hàng được chỉ định (0 chỉ số)

Nối vào cuối bảng tính bắt đầu trên cột đầu tiên

var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
8

(mặc định)

var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
9

Bắt đầu từ ô

const aoo_with_id = await coll.find({}).toArray();
const ws = XLSX.utils.json_to_sheet(aoo_with_id); // includes _id column
4

Tên tùy chọnMặc địnhSự mô tả
Bảng tính ví dụ này có thể được xây dựng theo thứ tự
const aoo_with_id = await coll.find({}).toArray();
const ws = XLSX.utils.json_to_sheet(aoo_with_id); // includes _id column
5:
Ghi chúNếu tùy chọn
const aoo_with_id = await coll.find({}).toArray();
const ws = XLSX.utils.json_to_sheet(aoo_with_id); // includes _id column
8 là một mảng,
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
08 và
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
09 sẽ nối các phần tử bị thiếu.
Thiết kế này cho phép thứ tự tiêu đề nhất quán qua các cuộc gọi:Đầu vào bảng HTMLTạo bảng tính hoặc sổ làm việc từ phần tử bảng
XLSX.utils.sheet_add_aoa(ws, aoa, opts);
9
FMT 14Sử dụng định dạng ngày được chỉ định trong đầu ra chuỗi
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
10 lấy phần tử DOM bảng và trả về một bảng tính giống như bảng đầu vào. Số được phân tích cú pháp. Tất cả các dữ liệu khác sẽ được lưu trữ dưới dạng chuỗi.
sai
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
11 tạo ra một sổ làm việc tối thiểu dựa trên bảng tính.
Cả hai chức năng đều chấp nhận các đối số tùy chọn:
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
12
Nếu đúng, mọi tế bào sẽ giữ các chuỗi thô
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
17
saiNếu> 0, hãy đọc các hàng
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
17 đầu tiên của bảng
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
19
saiNếu đúng, các hàng và ô ẩn sẽ không được phân tích cú pháp
  • Để tạo bảng ví dụ, giả sử bảng có ID
    var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
    20:
  • var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
    21 và
    var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
    22 hành động trên các phần tử HTML DOM. Bắt đầu từ một chuỗi HTML, có hai cách tiếp cận phân tích cú pháp:
  • Các trường chứa bản ghi hoặc dấu phân cách trường sẽ tự động được bọc trong các trích dẫn kép;
    var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
    52 buộc tất cả các tế bào phải được bọc trong trích dẫn.
  • var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
    58 với loại
    var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
    59 sẽ luôn dành cho dấu hiệu thứ tự byte UTF-8 cho khả năng tương thích Excel.
    var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
    60 Trả về chuỗi JS và bỏ qua nhãn hiệu. Sử dụng
    var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
    58 với loại
    var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
    62 cũng sẽ bỏ qua nhãn hiệu.

Bắt đầu từ bảng tính ví dụ:

Đầu ra văn bản UTF-16

var ws = XLSX.utils.aoa_to_sheet([
["S", "h", "e", "e", "t", "J", "S"],
[ 1, 2, , , 5, 6, 7],
[ 2, 3, , , 6, 7, 8],
[ 3, 4, , , 7, 8, 9],
[ 4, 5, 6, 7, 8, 9, 0]
]);
0

Loại đầu ra

var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
63 sử dụng ký tự tab làm dấu phân cách trường. Nếu thư viện
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
64 có sẵn (bao gồm trong phân phối đầy đủ nhưng không phải lõi), đầu ra sẽ được mã hóa trong
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
65 và BOM UTF-16 sẽ được thêm vào.

var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
66 có các đối số tương tự như
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
60.

Đầu ra HTML

var ws = XLSX.utils.aoa_to_sheet([
["S", "h", "e", "e", "t", "J", "S"],
[ 1, 2, , , 5, 6, 7],
[ 2, 3, , , 6, 7, 8],
[ 3, 4, , , 7, 8, 9],
[ 4, 5, 6, 7, 8, 9, 0]
]);
1

Thay thế cho loại

var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
42 HTML,
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
69 cũng tạo ra đầu ra HTML. Hàm có đối số tùy chọn:

Tên tùy chọnMặc địnhSự mô tả
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
70
Chỉ định thuộc tính
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
70 cho phần tử
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
72
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
73
saiNếu đúng, hãy đặt
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
74 cho mỗi TD
const aoo_with_id = await coll.find({}).toArray();
const ws = XLSX.utils.json_to_sheet(aoo_with_id); // includes _id column
8
Tiêu đề ghi đè (mặc định
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
76)
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
77
Ghi đè chân trang (mặc định
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
78)

Bắt đầu từ bảng tính ví dụ:

Đầu ra văn bản UTF-16

var ws = XLSX.utils.aoa_to_sheet([
["S", "h", "e", "e", "t", "J", "S"],
[ 1, 2, , , 5, 6, 7],
[ 2, 3, , , 6, 7, 8],
[ 3, 4, , , 7, 8, 9],
[ 4, 5, 6, 7, 8, 9, 0]
]);
2

Loại đầu ra

var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
63 sử dụng ký tự tab làm dấu phân cách trường. Nếu thư viện
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
64 có sẵn (bao gồm trong phân phối đầy đủ nhưng không phải lõi), đầu ra sẽ được mã hóa trong
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
65 và BOM UTF-16 sẽ được thêm vào.

Tên tùy chọnMặc địnhSự mô tả
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
70
Chỉ định thuộc tính
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
70 cho phần tử
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
72
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
73
saiNếu đúng, hãy đặt
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
74 cho mỗi TD
const aoo_with_id = await coll.find({}).toArray();
const ws = XLSX.utils.json_to_sheet(aoo_with_id); // includes _id column
8
const aoo_with_id = await coll.find({}).toArray();
const ws = XLSX.utils.json_to_sheet(aoo_with_id); // includes _id column
8
Tiêu đề ghi đè (mặc định
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
76)
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
77
Ghi đè chân trang (mặc định
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
78)
Đầu ra mảng
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
79 tạo ra các loại đối tượng JS khác nhau. Hàm có đối số tùy chọn:
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
12
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
81
Nếu đúng, hãy đặt
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
74 cho mỗi TD
const aoo_with_id = await coll.find({}).toArray();
const ws = XLSX.utils.json_to_sheet(aoo_with_id); // includes _id column
8
  • Tiêu đề ghi đè (mặc định
    var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
    76)
  • var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
    77
  • Ghi đè chân trang (mặc định
    var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
    78)
  • Đầu ra mảng
  • var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
    79 tạo ra các loại đối tượng JS khác nhau. Hàm có đối số tùy chọn:
  • var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
    12
  • var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
    81

Sử dụng các giá trị thô (true) hoặc chuỗi được định dạng (sai)

var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
82
Sự mô tả
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
70
Chỉ định thuộc tính
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
70 cho phần tử
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
72
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
73
sai
Nếu đúng, hãy đặt
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
74 cho mỗi TD
const aoo_with_id = await coll.find({}).toArray();
const ws = XLSX.utils.json_to_sheet(aoo_with_id); // includes _id column
8

Tiêu đề ghi đè (mặc định

var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
76)

const aoo_with_id = await coll.find({}).toArray();
const ws = XLSX.utils.json_to_sheet(aoo_with_id); // includes _id column
8
Sự mô tả
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
70
Chỉ định thuộc tính
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
70 cho phần tử
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
72
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
73
sai
Nếu đúng, hãy đặt
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
74 cho mỗi TD
const aoo_with_id = await coll.find({}).toArray();
const ws = XLSX.utils.json_to_sheet(aoo_with_id); // includes _id column
8
Nếu đúng, hãy đặt
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
74 cho mỗi TD
const aoo_with_id = await coll.find({}).toArray();
const ws = XLSX.utils.json_to_sheet(aoo_with_id); // includes _id column
8
  • Tiêu đề ghi đè (mặc định
    var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
    76)
  • var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
    77

Ghi đè chân trang (mặc định

var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
78)

Đầu ra mảng

var ws = XLSX.utils.aoa_to_sheet([
["S", "h", "e", "e", "t", "J", "S"],
[ 1, 2, , , 5, 6, 7],
[ 2, 3, , , 6, 7, 8],
[ 3, 4, , , 7, 8, 9],
[ 4, 5, 6, 7, 8, 9, 0]
]);
3

var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
79 tạo ra các loại đối tượng JS khác nhau. Hàm có đối số tùy chọn:

var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
12

var ws = XLSX.utils.aoa_to_sheet([
["S", "h", "e", "e", "t", "J", "S"],
[ 1, 2, , , 5, 6, 7],
[ 2, 3, , , 6, 7, 8],
[ 3, 4, , , 7, 8, 9],
[ 4, 5, 6, 7, 8, 9, 0]
]);
4

var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
81

var ws = XLSX.utils.aoa_to_sheet([
["S", "h", "e", "e", "t", "J", "S"],
[ 1, 2, , , 5, 6, 7],
[ 2, 3, , , 6, 7, 8],
[ 3, 4, , , 7, 8, 9],
[ 4, 5, 6, 7, 8, 9, 0]
]);
5

Sử dụng các giá trị thô (true) hoặc chuỗi được định dạng (sai)

var ws = XLSX.utils.aoa_to_sheet([
["S", "h", "e", "e", "t", "J", "S"],
[ 1, 2, , , 5, 6, 7],
[ 2, 3, , , 6, 7, 8],
[ 3, 4, , , 7, 8, 9],
[ 4, 5, 6, 7, 8, 9, 0]
]);
6

var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
82

var ws = XLSX.utils.aoa_to_sheet([
["S", "h", "e", "e", "t", "J", "S"],
[ 1, 2, , , 5, 6, 7],
[ 2, 3, , , 6, 7, 8],
[ 3, 4, , , 7, 8, 9],
[ 4, 5, 6, 7, 8, 9, 0]
]);
7

**

var ws = XLSX.utils.aoa_to_sheet([
["S", "h", "e", "e", "t", "J", "S"],
[ 1, 2, , , 5, 6, 7],
[ 2, 3, , , 6, 7, 8],
[ 3, 4, , , 7, 8, 9],
[ 4, 5, 6, 7, 8, 9, 0]
]);
8