Nhiều lần, chúng tôi có thể cần tải dữ liệu vào một tệp Excel một cách nhanh chóng. Trong blog này, chúng tôi sẽ nói về cách sử dụng Node.js. Xuất JSON sang tệp Excel là một trường hợp sử dụng rất phổ biến để sao lưu dữ liệu quan trọng hoặc di chuyển dữ liệu giữa hai phiên bản khác nhau của chương trình. Xuất dữ liệu là trích xuất và chuyển đổi dữ liệu thô từ định dạng hiện có thành định dạng theo yêu cầu của
Về tác giả: Chirag Sharma
Chirag có kỹ năng trong JavaScript và có kinh nghiệm thực hành với Node.js, Redis và AWS. Ông đã hoàn thành bằng thạc sĩ ứng dụng máy tính của Đại học Kỹ thuật Rajasthan.
8
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
Tôi đang cố gắng chuyển đổi một lượng lớn dữ liệu JSON thành Excel và thử một vài mô -đun dưới đây là những phát hiện của tôi, nếu có ai sử dụng mô -đun nút tốt hơn để xử lý nhiều dữ liệu hơn, vui lòng cho tôi biết để tôi có thể khám phá
json2xls
Mảng json với độ dài 100000
mất 402574ms
khi tôi vượt quá 200000
, nó không thành công với lỗi này FATAL ERROR: CALL_AND_RETRY_2 Allocation failed - process out of memory
node-xls
Mảng json với độ dài 100000
mất
const xlsx = require["xlsx"]//npm install xlsx
const fs = require["fs"]//npm install fs
var rawFile = fs.readFileSync["./datas.json"]//dir of your json file as param
var raw = JSON.parse[rawFile]
var files = []
for [each in raw]{
files.push[raw[each]]
}
var obj = files.map[[e] =>{
return e
}]
var newWB = xlsx.book_new[]
var newWS = xlsx.utils.json_to_sheet[obj]
xlsx.utils.book_append_sheet[newWB,newWS,"name"]//workbook name as param
xlsx.writeFile[newWB,"Sample-Sales-Data.xlsx"]//file name as param
1Tôi đã thử cái này trong hệ thống Windows 7 với RAM 8GB, Intel Core i7, CPU @ 2.10GHz - 2.70GHz
Hỏi ngày 26 tháng 8 năm 2015 lúc 21:37Aug 26, 2015 at 21:37
2
Trước tiên, hãy đẩy dữ liệu của bạn vào một mảng tạm thời với cột bắt buộc và sau đó chuyển đổi nó thành XLS, tôi đã thực hiện nó theo cách sau:
// use the below package to convert json to xls
var json2xls = require['json2xls'];
json.forEach[function[instance, indexx,record]{
var tempArry = {
'ColoumnName1' : record[indexx].columnNameVlaue,
'ColoumnName2' : record[indexx].columnNameVlaue,
'ColoumnName3' : record[indexx].columnNameVlaue,
'ColoumnName4' : record[indexx].columnNameVlaue
}
jsonArray.push[tempArry];
}];
//this code is for sorting xls with required value
jsonArray.sort[function[a, b] {
return parseFloat[b.ColoumnName4] - parseFloat[a.ColoumnName4];
}];
var xls = json2xls[jsonArray];
fs.writeFileSync['yourXLName.xlsx', xls, 'binary'];
Đừng cố gắng thêm tất cả dữ liệu vào tệp Excel, sử dụng các cột cụ thể bạn muốn trong tệp để được lưu.
Đã trả lời ngày 5 tháng 10 năm 2015 lúc 11:50Oct 5, 2015 at 11:50
2
Nếu đó là một dự án NodeJS thì hãy làm điều này,
const xlsx = require["xlsx"]//npm install xlsx
const fs = require["fs"]//npm install fs
var rawFile = fs.readFileSync["./datas.json"]//dir of your json file as param
var raw = JSON.parse[rawFile]
var files = []
for [each in raw]{
files.push[raw[each]]
}
var obj = files.map[[e] =>{
return e
}]
var newWB = xlsx.book_new[]
var newWS = xlsx.utils.json_to_sheet[obj]
xlsx.utils.book_append_sheet[newWB,newWS,"name"]//workbook name as param
xlsx.writeFile[newWB,"Sample-Sales-Data.xlsx"]//file name as param
Đã trả lời ngày 22 tháng 12 năm 2019 lúc 15:54Dec 22, 2019 at 15:54
1
Trong câu trả lời của Ratul Das, có một lỗi đánh máy trên dòng sau:
var newWB = xlsx.book_new[]
Mã nên đọc:
var newWB = xslx.utils.book_new[]
Đoạn trích bên dưới là mã tôi sử dụng để tạo bảng tính Excel từ một mảng các đối tượng JSON có tên ImageList:
const workSheet = XLSX.utils.json_to_sheet[imageList];
const workBook = XLSX.utils.book_new[];
XLSX.utils.book_append_sheet[workBook, workSheet, "Product Image Catalog"];
// Generate buffer
XLSX.write[workBook, {bookType: 'xlsx', type: 'buffer'}]
// Binary String
XLSX.write[workBook, {bookType: 'xlsx', type: 'binary'}]
XLSX.writeFile[workBook, 'image-catalog.xlsx']
Xây dựng bộ đệm giúp với một lượng lớn dữ liệu.
Đã trả lời ngày 28 tháng 10 năm 2021 lúc 15:59Oct 28, 2021 at 15:59
Nếu JSON của bạn đã được định dạng đúng, bạn phải làm:
const json2xls = require['json2xls'];
// Example JSON
const json = [{firstName: 'Bob', name: 'Lennon'}, {firstName: 'Jack', name: 'Sparrow'}]
const xls = json2xls[json];
fs.writeFileSync['exported.xlsx', xls, 'binary'];
Hoạt động tốt, và rất đơn giản.
Đã trả lời ngày 14 tháng 10 lúc 13:54Oct 14 at 13:54