1、创建一个空文件夹
2、终端
cnpm install xlsx
3、在文件夹创建一个index.js
// 导入 Node.js 内置的 fs 模块
const fs = require('fs');
// 导入 xlsx 模块,用于处理 Excel 文件
const XLSX = require('xlsx');
// 读取 Excel 文件
function readExcelFile(filePath) {
const workbook = XLSX.readFile(filePath);
const sheetName = workbook.SheetNames[0];
const worksheet = workbook.Sheets[sheetName];
return XLSX.utils.sheet_to_json(worksheet);
}
// 生成多语言文件
function generateLanguageFiles(data, outputDir) {
// 假设第一列是 key,后面的列为各种语言
const keys = Object.keys(data[0]);
const langKeys = keys.slice(1); // 跳过第一个 key 列
langKeys.forEach(lang => {
const content = {};
data.forEach(row => {
content[row[keys[0]]] = row[lang];
});
// 写入文件
const fileName = `${outputDir}/${lang}.js`;
const fileContent = `export default ${JSON.stringify(content)};`;
fs.writeFileSync(fileName, fileContent);
});
}
// 主函数
function main() {
const filePath = 'path/to/your/excel/file.xlsx';
const outputDir = 'path/to/output/directory';
// 确保输出目录存在
if (!fs.existsSync(outputDir)) {
fs.mkdirSync(outputDir, { recursive: true });
}
try {
const data = readExcelFile(filePath);
generateLanguageFiles(data, outputDir);
console.log('Language files generated successfully.');
} catch (error) {
console.error('Failed to generate language files:', error);
}
}
// 运行主函数
main();
请确保替换 filePath 和 outputDir 变量中的路径为实际的路径。
我的测试代码:
const filePath = 'D:/Users/admin/Desktop/lang.xlsx';
const outputDir = 'D:/Users/admin/Desktop/initLang';
4、excel文件
这段代码假设你的 Excel 文件结构如下:
key | en | zh |
---|---|---|
hello | hello | 你好 |
world | world | 世界 |
如我的lang.xlsx:
5、终端
在此文件夹下
node index.js
6、就会生成一个initLang文件夹
里面会有en.js、zh.js…文件