我知道带有多个选项卡的csv并不实际,但是否有任何方法或库可以在csv中保存具有多个选项卡/工作表的数据?
CSV作为一种文件格式,假设有一个数据“表”;在Excel中,这就是工作簿的一个表格。虽然它只是纯文本,你可以按任何你想要的方式解释它,但是“标准”的CSV格式不支持你的主管所想的。
你可以用以下几种方式来解决:
使用不同的文件来表示每个表格,文件名相关但不同,例如 "Book1_Sheet1"、"Book1_Sheet2"等等。你可以根据第一个下划线之前的文本找到相关的文件组。这是最简单的实现方法之一,但需要用户携带多个与逻辑“工作簿”相关的文件,如果其中一个文件遗失了,数据也将丢失。
采用上述方式,并将文件“压缩”成一个可移动的单个文件。你保留了上述选项的纯CSV优点,同时又方便地只需移动一个文件,而不是几个文件,但是缺点是必须压缩/解压缩文件才能获取实际文件。为了减轻这种痛苦,如果你使用.NET 4.5,则可以访问内置的ZipFile实现;如果不是,可以使用开源的DotNetZip或SharpZipLib,其中任何一个都可以允许你编程创建和使用标准的Windows ZIP文件。你也可以使用几乎通用的.tar.gz(又称.tgz)组合,但你的用户需要你的程序或第三方压缩工具,如7Zip或WinRAR来从一组导出的CSV中创建归档。
实现一种准CSV格式,其中空白行(仅包含换行符)充当“制表符分隔符”,而你的解析器将期望一个新行的列标题,然后是新配置中的数据行。这个变体不遵循预期的文件格式,可能无法被CSVs的其他消费者读取,因此我建议你不要使用“.csv”扩展名,因为它会让用户感到困惑和沮丧,他们希望能够在其他应用程序中打开它,如电子表格。
我认为您想要减小Excel文件的大小。如果是这样,您可以将其保存为xlsb格式,即Excel二进制工作簿格式。此外,您可以通过删除所有空白单元格来减小文件大小。