In đậm tiêu đề xlsx.utils.json_to_sheet

Xin chào, tôi đã thử ví dụ này trước với Hoạt động Sử dụng Excel.
Tại File Excel, tôi đã chọn A. tập tin xlsx.
Và cũng có thể được sử dụng làm mẫu (nó là một tùy chọn cho mẫu).

Sau đó, tôi đã sử dụng hoạt động Lưu tệp Excel dưới dạng và chọn B. xlsx
Tùy chọn Thay thế Hiện có cũng nên được chọn.

Tiếp theo, tôi đã sử dụng hoạt động Cho từng hàng trong Excel.
Tại trường Trong phạm vi tôi có.
Excel. Trang tính ("Trang tính 1"). Phạm vi ("2. 10”)

Trong phần nội dung này, Đối với mỗi tôi đã tạo một tên biến mới
(có thể đặt tên này bằng Hoạt động đặt biến )
name = CurrentRow. Theo Index(1). ĐếnChuỗi

Sau đó, tôi đã kiểm tra, nếu nó chưa phải là một trang tính khác có tên này.
Có thể sử dụng một điều kiện If đơn giản để xác minh quan trọng này.
Điều kiện như sau.
Excel. Tấm. Mục(tên) Không có gì

Nếu điều kiện này được chọn, bạn có thể sử dụng hoạt động Sao chép trang tính.
Tại tên trang tính, bạn có thể sử dụng.
Excel. Sheet(“Sheet1”)
Và tên trang tính sẽ là tên biến.

Sau vòng lặp For Each Excel Row, bạn có thể sử dụng SaveExcelFile
Đối số cho hoạt động này chỉ là Excel, dưới dạng tài liệu.
Cuối cùng, dự án này trông như thế này.

In đậm tiêu đề xlsx.utils.json_to_sheet

Excel_Format680×620 23 KB

Hy vọng điều này có thể giúp ích cho bạn.
Trân trọng, Adrian

nhập xlsxwriter # Tạo sổ làm việc và thêm trang tính. sổ làm việc = xlsxwriter. Sổ làm việc ('Chi phí02. xlsx') trang tính = sổ làm việc. add_worksheet() # Thêm định dạng in đậm để đánh dấu các ô. in đậm = sổ làm việc. add_format({'đậm'. True}) # Thêm định dạng số cho ô có tiền. tiền = sổ làm việc. add_format({'num_format'. '$#,##0'}) # Viết một số tiêu đề dữ liệu. bảng tính. bảng tính write('A1', 'Item', bold). write('B1', 'Cost', bold) # Một số dữ liệu chúng ta muốn ghi vào trang tính. chi phí = ( ['Rent', 1000], ['Gas', 100], ['Food', 300], ['Gym', 50], ) # Bắt đầu từ ô đầu tiên bên dưới tiêu đề. row = 1 col = 0 # Lặp lại dữ liệu và viết nó ra từng hàng. cho mặt hàng, chi phí trong (chi phí). bảng tính. bảng tính ghi (hàng, cột, mục). write(row, col + 1, cost, money) row += 1 # Viết tổng bằng công thức. bảng tính. bảng tính write(row, 0, 'Total', bold). write(row, 1, '=SUM(B2. B5)', tiền) sổ làm việc. Thoát()

SheetJS trình bày một giao diện JS đơn giản hoạt động với "Mảng của các mảng" và "Mảng của các đối tượng JS". Các hàm API là các khối xây dựng nên được kết hợp với các API JS khác để giải quyết vấn đề

Cuộc thảo luận tập trung vào tư duy giải quyết vấn đề. Chi tiết API được đề cập trong các phần khác của tài liệu

Mục tiêu của ví dụ này là tạo sổ làm việc XLSX có tên và ngày sinh của Tổng thống Hoa Kỳ. Nhấn vào đây để chuyển sang bản demo trực tiếp

Thu thập dữ liệu

Dữ liệu thô

Dữ liệu thô có sẵn ở dạng JSON. Để thuận tiện, nó đã được nhân đôi ở đây

Thu thập dữ liệu đơn giản với

{
"id": { /* (data omitted) */ },
"name": {
"first": "John", // <-- first name
"last": "Adams" // <-- last name
},
"bio": {
"birthday": "1735-10-19", // <-- birthday
"gender": "M"
},
"terms": [
{ "type": "viceprez", /* (other fields omitted) */ },
{ "type": "viceprez", /* (other fields omitted) */ },
{ "type": "prez", /* (other fields omitted) */ }
]
}
9

const url = "https://sheetjs.com/data/executive.json";
const raw_data = await (await fetch(url)).json();

Dữ liệu thô là một mảng các đối tượng. Đây là dữ liệu của John Adams

{
"id": { /* (data omitted) */ },
"name": {
"first": "John", // <-- first name
"last": "Adams" // <-- last name
},
"bio": {
"birthday": "1735-10-19", // <-- birthday
"gender": "M"
},
"terms": [
{ "type": "viceprez", /* (other fields omitted) */ },
{ "type": "viceprez", /* (other fields omitted) */ },
{ "type": "prez", /* (other fields omitted) */ }
]
}

Lọc cho Chủ tịch

Bộ dữ liệu bao gồm Aaron Burr, một Phó Tổng thống chưa bao giờ là Tổng thống

const prez = raw_data.filter(row => row.terms.some(term => term.type === "prez"));
0 tạo một mảng mới với các hàng mong muốn. Tổng thống đã phục vụ ít nhất một nhiệm kỳ với
const prez = raw_data.filter(row => row.terms.some(term => term.type === "prez"));
1 được đặt thành
const prez = raw_data.filter(row => row.terms.some(term => term.type === "prez"));
2. Để kiểm tra xem một hàng cụ thể có ít nhất một thuật ngữ
const prez = raw_data.filter(row => row.terms.some(term => term.type === "prez"));
2 hay không,
const prez = raw_data.filter(row => row.terms.some(term => term.type === "prez"));
4 là một hàm JS gốc khác. Bộ lọc hoàn chỉnh sẽ là

const prez = raw_data.filter(row => row.terms.some(term => term.type === "prez"));

Định hình lại mảng​

Đối với ví dụ này, tên sẽ là tên kết hợp với họ (

const prez = raw_data.filter(row => row.terms.some(term => term.type === "prez"));
5) và ngày sinh sẽ có tại
const prez = raw_data.filter(row => row.terms.some(term => term.type === "prez"));
6. Sử dụng
const prez = raw_data.filter(row => row.terms.some(term => term.type === "prez"));
7, bộ dữ liệu có thể được xoa bóp trong một cuộc gọi

const url = "https://sheetjs.com/data/executive.json";
const raw_data = await (await fetch(url)).json();
2

Kết quả là một mảng các đối tượng "đơn giản" không lồng vào nhau

const url = "https://sheetjs.com/data/executive.json";
const raw_data = await (await fetch(url)).json();
3

Tạo sổ làm việc​

Với tập dữ liệu đã được làm sạch,

const prez = raw_data.filter(row => row.terms.some(term => term.type === "prez"));
8 tạo một trang tính

const url = "https://sheetjs.com/data/executive.json";
const raw_data = await (await fetch(url)).json();
5

const prez = raw_data.filter(row => row.terms.some(term => term.type === "prez"));
9 tạo một sổ làm việc mới và
const url = "https://sheetjs.com/data/executive.json";
const raw_data = await (await fetch(url)).json();
20 nối thêm một trang tính vào sổ làm việc. Bảng tính mới sẽ được gọi là "Ngày"

const url = "https://sheetjs.com/data/executive.json";
const raw_data = await (await fetch(url)).json();
8

Dọn dẹp sổ làm việc​

Dữ liệu nằm trong sổ làm việc và có thể được xuất

In đậm tiêu đề xlsx.utils.json_to_sheet

Có nhiều cơ hội để cải thiện. các tiêu đề có thể được đổi tên và độ rộng cột có thể được điều chỉnh. SheetJS Pro cung cấp các tùy chọn kiểu dáng bổ sung như kiểu dáng ô và hàng cố định

Thay đổi tên tiêu đề (bấm để hiển thị)

Theo mặc định,

const url = "https://sheetjs.com/data/executive.json";
const raw_data = await (await fetch(url)).json();
21 tạo trang tính có hàng tiêu đề. Trong trường hợp này, các tiêu đề đến từ các khóa đối tượng JS. "tên" và "sinh nhật"

Các tiêu đề nằm trong các ô

const url = "https://sheetjs.com/data/executive.json";
const raw_data = await (await fetch(url)).json();
22 và
const url = "https://sheetjs.com/data/executive.json";
const raw_data = await (await fetch(url)).json();
23.
const url = "https://sheetjs.com/data/executive.json";
const raw_data = await (await fetch(url)).json();
24 có thể ghi các giá trị văn bản vào trang tính hiện có bắt đầu từ ô
const url = "https://sheetjs.com/data/executive.json";
const raw_data = await (await fetch(url)).json();
22

{
"id": { /* (data omitted) */ },
"name": {
"first": "John", // <-- first name
"last": "Adams" // <-- last name
},
"bio": {
"birthday": "1735-10-19", // <-- birthday
"gender": "M"
},
"terms": [
{ "type": "viceprez", /* (other fields omitted) */ },
{ "type": "viceprez", /* (other fields omitted) */ },
{ "type": "prez", /* (other fields omitted) */ }
]
}
4

Thay đổi độ rộng cột (bấm để hiển thị)

Một số tên dài hơn chiều rộng cột mặc định. Độ rộng cột được đặt bằng cách đặt thuộc tính trang tính

const url = "https://sheetjs.com/data/executive.json";
const raw_data = await (await fetch(url)).json();
26

Dòng sau đặt chiều rộng của cột A thành khoảng 10 ký tự

{
"id": { /* (data omitted) */ },
"name": {
"first": "John", // <-- first name
"last": "Adams" // <-- last name
},
"bio": {
"birthday": "1735-10-19", // <-- birthday
"gender": "M"
},
"terms": [
{ "type": "viceprez", /* (other fields omitted) */ },
{ "type": "viceprez", /* (other fields omitted) */ },
{ "type": "prez", /* (other fields omitted) */ }
]
}
6

Một cuộc gọi

const url = "https://sheetjs.com/data/executive.json";
const raw_data = await (await fetch(url)).json();
27 qua
const url = "https://sheetjs.com/data/executive.json";
const raw_data = await (await fetch(url)).json();
28 có thể tính chiều rộng tối đa

{
"id": { /* (data omitted) */ },
"name": {
"first": "John", // <-- first name
"last": "Adams" // <-- last name
},
"bio": {
"birthday": "1735-10-19", // <-- birthday
"gender": "M"
},
"terms": [
{ "type": "viceprez", /* (other fields omitted) */ },
{ "type": "viceprez", /* (other fields omitted) */ },
{ "type": "prez", /* (other fields omitted) */ }
]
}
9

Xuất một tập tin​

const url = "https://sheetjs.com/data/executive.json";
const raw_data = await (await fetch(url)).json();
29 tạo một tệp bảng tính và cố gắng ghi nó vào hệ thống. Trong trình duyệt, nó sẽ cố gắng nhắc người dùng tải xuống tệp. Trong NodeJS, nó sẽ ghi vào thư mục cục bộ

Ghi chú

const url = "https://sheetjs.com/data/executive.json";
const raw_data = await (await fetch(url)).json();
30 chỉ ghi các tệp XLSX và được khuyến nghị khi xuất sẽ luôn ở định dạng
const url = "https://sheetjs.com/data/executive.json";
const raw_data = await (await fetch(url)).json();
31.
const url = "https://sheetjs.com/data/executive.json";
const raw_data = await (await fetch(url)).json();
32 dễ bị rung cây hơn. Ví dụ này sử dụng
const url = "https://sheetjs.com/data/executive.json";
const raw_data = await (await fetch(url)).json();
29 vì
const url = "https://sheetjs.com/data/executive.json";
const raw_data = await (await fetch(url)).json();
32 không hỗ trợ các định dạng xuất phổ biến khác như
const url = "https://sheetjs.com/data/executive.json";
const raw_data = await (await fetch(url)).json();
35 hoặc
const url = "https://sheetjs.com/data/executive.json";
const raw_data = await (await fetch(url)).json();
36 hoặc
const url = "https://sheetjs.com/data/executive.json";
const raw_data = await (await fetch(url)).json();
37

const url = "https://sheetjs.com/data/executive.json";
const raw_data = await (await fetch(url)).json();
38 cho phép nén ZIP cho XLSX và các định dạng khác

{
"id": { /* (data omitted) */ },
"name": {
"first": "John", // <-- first name
"last": "Adams" // <-- last name
},
"bio": {
"birthday": "1735-10-19", // <-- birthday
"gender": "M"
},
"terms": [
{ "type": "viceprez", /* (other fields omitted) */ },
{ "type": "viceprez", /* (other fields omitted) */ },
{ "type": "prez", /* (other fields omitted) */ }
]
}
0

In đậm tiêu đề xlsx.utils.json_to_sheet

Bản trình diễn trực tiếp

Bản demo này chạy trong trình duyệt web. Nhấp vào "Nhấp để tạo tệp. " và trình duyệt sẽ tạo tệp XLSX

Kết quả

Đang tải

Trình chỉnh sửa trực tiếp

{
"id": { /* (data omitted) */ },
"name": {
"first": "John", // <-- first name
"last": "Adams" // <-- last name
},
"bio": {
"birthday": "1735-10-19", // <-- birthday
"gender": "M"
},
"terms": [
{ "type": "viceprez", /* (other fields omitted) */ },
{ "type": "viceprez", /* (other fields omitted) */ },
{ "type": "prez", /* (other fields omitted) */ }
]
}
1

Chạy bản demo cục bộ

  • trình duyệt
  • NodeJS
  • Deno
  • bún

Lưu tập lệnh sau vào

const url = "https://sheetjs.com/data/executive.json";
const raw_data = await (await fetch(url)).json();
39 và mở trang. Trang phải được lưu trữ (không có quyền truy cập
const url = "https://sheetjs.com/data/executive.json";
const raw_data = await (await fetch(url)).json();
50)

https. //sheetjs. com/pres. html là phiên bản được lưu trữ của trang

{
"id": { /* (data omitted) */ },
"name": {
"first": "John", // <-- first name
"last": "Adams" // <-- last name
},
"bio": {
"birthday": "1735-10-19", // <-- birthday
"gender": "M"
},
"terms": [
{ "type": "viceprez", /* (other fields omitted) */ },
{ "type": "viceprez", /* (other fields omitted) */ },
{ "type": "prez", /* (other fields omitted) */ }
]
}
2

Cài đặt các phụ thuộc

{
"id": { /* (data omitted) */ },
"name": {
"first": "John", // <-- first name
"last": "Adams" // <-- last name
},
"bio": {
"birthday": "1735-10-19", // <-- birthday
"gender": "M"
},
"terms": [
{ "type": "viceprez", /* (other fields omitted) */ },
{ "type": "viceprez", /* (other fields omitted) */ },
{ "type": "prez", /* (other fields omitted) */ }
]
}
3

Lưu tập lệnh sau vào

const url = "https://sheetjs.com/data/executive.json";
const raw_data = await (await fetch(url)).json();
51 và chạy
const url = "https://sheetjs.com/data/executive.json";
const raw_data = await (await fetch(url)).json();
52

đoạn trích. js

{
"id": { /* (data omitted) */ },
"name": {
"first": "John", // <-- first name
"last": "Adams" // <-- last name
},
"bio": {
"birthday": "1735-10-19", // <-- birthday
"gender": "M"
},
"terms": [
{ "type": "viceprez", /* (other fields omitted) */ },
{ "type": "viceprez", /* (other fields omitted) */ },
{ "type": "prez", /* (other fields omitted) */ }
]
}
4

Hỗ trợ

{
"id": { /* (data omitted) */ },
"name": {
"first": "John", // <-- first name
"last": "Adams" // <-- last name
},
"bio": {
"birthday": "1735-10-19", // <-- birthday
"gender": "M"
},
"terms": [
{ "type": "viceprez", /* (other fields omitted) */ },
{ "type": "viceprez", /* (other fields omitted) */ },
{ "type": "prez", /* (other fields omitted) */ }
]
}
9 gốc đã được thêm vào trong NodeJS 18. Đối với các phiên bản NodeJS cũ hơn, tập lệnh sẽ báo lỗi
const url = "https://sheetjs.com/data/executive.json";
const raw_data = await (await fetch(url)).json();
54. Thư viện của bên thứ ba như
const url = "https://sheetjs.com/data/executive.json";
const raw_data = await (await fetch(url)).json();
55 trình bày một API tương tự để tìm nạp dữ liệu