From 4faf102f9b4a34501c4fc2fc3d9cd2d047486d82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E7=A7=8B=E6=97=AD?= Date: Sun, 18 Jan 2026 14:22:28 +0800 Subject: [PATCH] jsonToXlsx --- data.xlsx | Bin 0 -> 23842 bytes json-to-xlsx.js | 64 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 data.xlsx create mode 100644 json-to-xlsx.js diff --git a/data.xlsx b/data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..6883859278e9b087425fa0915e930b05a91d9a7b GIT binary patch literal 23842 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 kl>fOL{*t$A|Mv~4YfWLSDKeJ0j`~Uy| literal 0 HcmV?d00001 diff --git a/json-to-xlsx.js b/json-to-xlsx.js new file mode 100644 index 0000000..5afa8e9 --- /dev/null +++ b/json-to-xlsx.js @@ -0,0 +1,64 @@ + +import fs from 'fs/promises'; +import ExcelJS from 'exceljs'; + +async function jsonToXlsx() { + try { + const jsonFilePath = './data.json'; + const xlsxFilePath = './data.xlsx'; + + // Read and parse the JSON file + const jsonData = await fs.readFile(jsonFilePath, 'utf-8'); + const records = JSON.parse(jsonData); + + if (records.length === 0) { + console.log('data.json 文件为空,没有数据可转换为 XLSX。'); + return; + } + + // Create a new workbook and a worksheet + const workbook = new ExcelJS.Workbook(); + const worksheet = workbook.addWorksheet('Data'); + + // Define columns based on the keys of the first record + const headers = Object.keys(records[0]); + worksheet.columns = headers.map(key => ({ + header: key, + key: key, + width: key.includes('地址') || key.includes('链接') ? 40 : 20 // Make address and link columns wider + })); + + // Add the records as rows + worksheet.addRows(records); + + // Style the header + worksheet.getRow(1).eachCell(cell => { + cell.font = { bold: true }; + cell.fill = { + type: 'pattern', + pattern:'solid', + fgColor:{argb:'FFDDDDDD'} + }; + cell.alignment = { vertical: 'middle', horizontal: 'center' }; + }); + + // Auto-filter on the header row + worksheet.autoFilter = { + from: 'A1', + to: { + row: 1, + column: headers.length + } + }; + + // Write to file + await workbook.xlsx.writeFile(xlsxFilePath); + console.log(`成功将 ${jsonFilePath} 转换为 ${xlsxFilePath}`); + console.log('XLSX 文件已创建,您现在可以在其中进行筛选和排序。'); + + } catch (error) { + console.error('转换 JSON 到 XLSX 时发生错误:', error.message); + } +} + +jsonToXlsx();