csv是否可以使用多个标签页?

我正在调用Web服务,并且来自Web服务的数据采用csv格式。 如果我尝试在xls / xlsx中保存数据,那么我会在工作簿中获取多个工作表。 所以,我怎样才能保存在csv与c#中的多个表/工作表的数据。

我知道csv与多个选项卡是不实际的,但有没有任何该死的方法或任何库以csv多个选项卡/表中保存数据?

CSV作为一种文件格式,假定一个数据表“table” 在Excel中,这是一张工作簿。 虽然这只是纯文本,并且您可以任何方式解读,但“标准”CSV格式不支持您的主pipe正在考虑的内容。

你可以通过几种方法来捏造你想要的东西:

  • 为每个工作表使用不同的文件,并使用相关但不同的名称,如“Book1_Sheet1”,“Book1_Sheet2”等。然后可以通过第一个下划线之前的文本find相关文件组。 这是最容易实现的,但是要求用户在每个逻辑“工作簿”中包含多个文件,如果在混洗中丢失了数据,则会丢失该数据。

  • 执行上述操作,并将这些文件“压缩”成可以移动的单个存档。 您保持上述选项的纯CSV优势,再加上一个文件移动而不是几个文件的便利,但不得不压缩/解压缩文件以获得实际文件。 为了减轻这种痛苦,如果你在.NET 4.5中,你可以访问一个内置的ZipFile实现,如果你不是,你可以使用开源的DotNetZip或者SharpZipLib,其中的任何一个都可以让你以编程方式创build和使用标准的Windows ZIP文件。 您也可以使用几乎通用的.tar.gz(aka .tgz)组合,但您的用户将需要您的程序或第三方压缩工具(如7Zip或WinRAR)从一组导出的CSV创build存档。

  • 实现一个准CSV格式的空白行(只包含一个换行符)作为“制表符分隔符”,你的parsing器将会在新的configuration中有一个新的行标题后面跟着数据行。 标准CSV的这种变体可能不会被其他CSV用户读取,因为它不符合预期的文件格式,因此我build议您不要使用“.csv”扩展名,因为它会混淆和阻止用户期待能够在电子表格等其他应用程序中打开它。

如果我尝试在xls / xlsx中保存数据,那么我会在工作簿中获取多个工作表。

你的回答是在你的问题中,不要使用text / csv(这肯定不能做多张纸,它甚至不能做一张纸;在text / csv中没有这样的纸,尽pipe有一些Excel或Calc等应用程序select将其导入到具有工作表的格式中),但将其另存为xls,xlsx,ods或其他具有工作表的格式。

XLSX和ODS都比text / csv复杂得多,但它们可能都是各自格式中最直接的。

我一直在使用这个库,

https://github.com/SheetJS/js-xlsx

在我的项目中导入数据和结构的格式如:xls(x),csv和xml,但你也可以保存在这种格式(以及所有客户端)!

希望能帮到你,看看在线演示,

http://oss.sheetjs.com/js-xlsx/

偷看源代码或文件生长激素? 但我认为你必须自己做大部分的编码

我想你想减less你的Excel文件的大小。 如果是,那么你可以将它保存为xlsb,即Excel二进制工作簿格式。 此外,您可以通过删除所有空白单元格来缩小文件大小。

我希望这回答你的关注。