使用 Node.js 将 XLSX 文件转换为 XML 文件,根元素为文件名
使用 Node.js 将 XLSX 文件转换为 XML 文件,根元素为文件名
您是否需要将 XLSX 文件转换为 XML 文件,并将根元素设置为文件名?本教程将为您提供详细的步骤和代码示例,以帮助您使用 Node.js 实现这一目标。
以下是将根元素设置为文件名的代码,以便将 XLSX 文件转换为 XML 文件:
const fs = require('fs');
const path = require('path');
const XLSX = require('xlsx');
const xml = require('xmlbuilder');
// 读取 XLSX 文件
const filePath = 'path/to/input.xlsx'; // 替换为实际的XLSX文件路径
const workbook = XLSX.readFile(filePath);
const worksheet = workbook.Sheets[workbook.SheetNames[0]];
const jsonData = XLSX.utils.sheet_to_json(worksheet, { header: 1 });
// 获取文件名
const fileName = path.basename(filePath, path.extname(filePath));
// 创建根元素
const root = xml.create(fileName);
// 获取属性行
const attributeRow = jsonData[0];
// 遍历每一行数据
jsonData.slice(1).forEach(row => {
const element = root.ele(attributeRow[0]);
attributeRow.slice(1).forEach((attribute, index) => {
element.att(attribute, row[index + 1]);
});
});
// 构建 XML 数据
const xmlData = root.end({ pretty: true });
// 保存为 XML 文件
const outputPath = `path/to/${fileName}.xml`; // 替换为实际的输出XML文件路径
fs.writeFile(outputPath, xmlData, 'utf8', err => {
if (err) {
console.error(err);
return;
}
console.log(`转换后的XML文件已保存至 ${outputPath}`);
});
代码说明:
-
导入必要的模块:
fs用于文件系统操作。path用于处理文件路径。XLSX用于读取 XLSX 文件。xmlbuilder用于构建 XML 数据。
-
读取 XLSX 文件:
- 使用
XLSX.readFile()方法读取 XLSX 文件。 - 获取第一个工作表及其数据。
- 使用
-
获取文件名:
- 使用
path.basename()和path.extname()方法从文件路径中提取文件名(不带扩展名)。
- 使用
-
创建根元素:
- 使用
xmlbuilder创建一个根元素,并将其名称设置为文件名。
- 使用
-
遍历数据并创建 XML 元素:
- 获取第一行作为属性行。
- 遍历除属性行之外的所有数据行。
- 为每一行创建一个新的 XML 元素,并使用属性行中的值作为属性名称,使用行数据作为属性值。
-
构建 XML 数据:
- 使用
root.end()方法构建完整的 XML 数据。
- 使用
-
保存 XML 文件:
- 使用
fs.writeFile()方法将 XML 数据写入文件。 - 文件名是原始文件名加上 '.xml' 扩展名。
- 使用
使用方法:
- 确保您已安装必要的 Node.js 模块:
npm install fs path xlsx xmlbuilder - 将代码中的
path/to/input.xlsx替换为实际的 XLSX 文件路径。 - 将
path/to/替换为实际的输出文件夹路径。 - 运行代码:
node your-script-name.js
这将创建一个新的 XML 文件,其根元素为原始 XLSX 文件名,并将转换后的数据保存在指定的输出路径中。
原文地址: https://www.cveoy.top/t/topic/Jo7 著作权归作者所有。请勿转载和采集!