如何在使用 javascript 将数据导出到 .csv 时更改单元格的类型和其他属性

use*_*988 3 html javascript jquery angularjs angular

我使用下面的 javascript 代码将 html 表数据导出到 .CSV 文件:

var csvData = 'data:application/csv;charset=utf-8,' + encodeURIComponent(csv); // csv is HTML table innerHTML data
var a = $('<a/>', {
                    style:'display:none',
                    href:csvData,
                    download: 'worksheet.csv'
                    }).appendTo('body')
                    a[0].click()
                    a.remove(); 
Run Code Online (Sandbox Code Playgroud)

使用此代码,我可以将html表数据导出到CSV. 现在我必须以编程方式实现以下要求。

  1. 我想增加生成的 csv 文件中单元格的宽度。
  2. 大数字显示时正在转换为不同的格式。例如:“123456789012”显示为“1.23457E+11”,但我想显示为“123456789012”。
  3. 如何更改工作表名称?目前,工作表名称显示为我给出的任何文件名。

我想使用javascript/jQuery或任何网络技术来实现这些功能。

ADy*_*son 5

CSV 文件没有“单元格”。它只是一个文本文件,其中包含一些文本,以逗号分隔。在记事本或任何其他文本编辑器中打开文件,您将看到其真实格式。当您在 Excel 中打开它时,Excel 在后台运行转换任务以使其在 Excel 中显示。它获取每个逗号分隔的值并将其放入 Excel 单元格中。单元格是 Excel 概念,而不是 CSV 概念。

CSV 也没有工作表名称。Excel 在导入时通常会使用文件名作为工作表名称。此外,Excel 会将列宽设置为任何它想要的(可能是默认值),因为 CSV 文件格式仅将值存储为文本 - 它不存储任何格式或数据类型信息。

因此,您无法通过 javascript 或任何其他可能用于创建 CSV 的语言来指定您想要的任何内容,因为 CSV 格式不支持它们。如果您使用导入向导(而不是默认的打开方法)在 Excel 中打开文件,您可能能够更改文件在 Excel 中导入和显示方式的某些方面,但这些选项可能会或可能不会帮助您,具体取决于您的确切要求。