我试图使用excel.js向CSV文件添加标题行,但该行中的所有列都在一个单元格中结束。
如何分隔列?
的数据
如有任何帮助,我们将不胜感激
我尝试的代码是:
static async tratarPlanilha(planilhaPath) {
const workbook = new excelJs.Workbook();
await workbook.csv.readFile(planilhaPath);
const header = ['disciplina teste', 'RESP_1', 'RESP_2', 'RESP_3', 'RESP_4', 'RESP_5', 'MEDIA', 'COD QUESTAO', 'TITULO', 'MEDIA GERAL', 'NUMERO PREENCHIMENTO']
const planilhas = [];
workbook.eachSheet((sheet, sheetId) => {
sheet.eachRow((row, rowNumber) => {
const disciplina = row.getCell(1).value;
const valores = disciplina.split(';');
console.log(valores[0]);
if (!planilhas[valores[0]]) {
planilhas[valores[0]] = new excelJs.Workbook();
planilhas[valores[0]].addWorksheet(sheet.name);
planilhas[valores[0]].getWorksheet(sheet.name).addRow(header);
}
planilhas[valores[0]].getWorksheet(sheet.name).addRow(row.values);
})
});
for (const disciplina in planilhas) {
const outputPath = `planilha_${disciplina[0]}.csv`;
await planilhas[disciplina].csv.writeFile(outputPath);
}
}
字符串
4条答案
按热度按时间7qhs6swi1#
它们 * 看起来 * 在一个单元格中,因为这是计算机上Excel在打开CSV时显示CSV的方式,但是如果您导入它,并使用
,
作为一个空格,它应该显示为分隔的。它似乎用
;
分隔数据,所以如果它不重要,你可以调整CSV格式以适应Excel最初显示数据的方式,但不推荐这样做(在其他计算机上,它可能会显示在一个单元格中,并且很难处理它,因为它不会有逗号作为常用的分隔符.)。为此,在
options
中使用;
作为缓存,然后将其传递给writeFile
注意:这将使
;
作为CSV格式,而不是逗号(,
)字符串
qaxu7uf22#
这个问题可能是在程序中看到的.csv,我运行你的代码,输出很好。我用的是vs代码扩展。
output using vs code excel viewer
toiithl63#
看起来你是把标题作为一行。根据文档,要添加一个标题,你可以在初始化CSV时包含一个额外的参数:
字符串
xj3cbfub4#
演示代码,它将支持多个表太多。
保存为“save-csv.js”
字符串
输入文件x1c 0d1x
结果
型