首页 > 解决方案 > 反应js如何在写入csv并给出粗体标题时将文本左对齐

问题描述

我在为我的 CSV 添加样式时遇到困难,例如将文本右对齐和加粗标题。

下面是我用来将数据推送到 CSV 并将下载提供给导出按钮的代码。

const row = [
                    element.name,
                    element.data2,
                    element.data3,
                    element.data4,
                    '= "' + element.data5 + '"',
                    tarr[0],
                    tarr[1],
                    tarr[2],
                    tarr[3],
                    tarr[4],
                    tarr[5],
                    tarr[6],
                    tarr[7],
                    element.data6
                ];
                exportList.push(row)
            
        }); 
        
        let csvContent = 'data:text/csv;charset=utf-8,';
        exportList.forEach(function (rowArray) {
            let row = rowArray.join(',');
            //let row = (rowArray.trim()).join(',');
            csvContent += row + '\r\n'
        });
        const encodedUri = encodeURI(csvContent);
        const link = document.createElement('a');
        link.setAttribute('href', encodedUri);
        link.setAttribute('download', 'my_data.csv');
        document.body.appendChild(link); // Required for FF
        link.click() // This will download the data file named "my_data.csv".
    }

请帮忙。

标签: javascriptreactjsfrontend

解决方案


您不能完全设置 CSV 文件的样式。它们被设计为计算机可读的,而不是人类可读的。您可以做的最好的事情是在标题中使用粗体 UTF-8 字符,但请注意,这会使以后在程序中读取该文件变得非常困难。如果您需要样式,最好不要使用 CSV 文件。

我建议尝试这个库:https ://www.npmjs.com/package/xlsx-style 。它使用 xlsx 文件(Excel 工作簿),这些文件旨在供人类阅读并包含您正在寻找的所有功能(以及更多功能),但计算机可读性较差。


推荐阅读