无论我搜索了多少,一切都以某种方式痛苦地复杂且过于实用......
我想要最大程度的简单性——像处理二维字符串数组一样处理表格。
我想出的答案如下:)
完整的 CSV 支持应包括:
- 更改分隔符的能力
- 读取定界符之间的单元格
- 阅读线
- 如果单元格中有分隔符,单元格必须被引用并由读者自己正常处理
- 如果下一行符号在单元格中,则单元格必须用引号括起来,通常由读者自己处理。
- 如果单元格是带引号的,而且里面有引号,那么也应该处理无误。
无论我搜索了多少,一切都以某种方式痛苦地复杂且过于实用......
我想要最大程度的简单性——像处理二维字符串数组一样处理表格。
我想出的答案如下:)
完整的 CSV 支持应包括:
精益求精:
在这里,我编写了一个非常简单的基于 ClosedXML 的库,以便能够毫不犹豫地将 MS Excel 表格作为二维数组使用:还有什么更容易使用的呢?
使用我的班级的最终代码示例:
其实这些都是方法——苦行极简主义:)
如果需要写公式,可以使用如下代码:
格式文件:
并且使用完全相同的苦行者方法,有一个与处理二维数据数组一样简单的方法来处理 CSV 文件。
您可以在此处找到这两个类的实际代码: https ://github.com/ukushu/DataExporter
为什么我的代码是这样写的而不是其他方式(Excel)
这个块对于那些没有足够的我的以及想要使用 Microsoft Excel 的更多功能的人很有用。
起初我尝试使用Microsoft.Office.Interop.Excel处理 Excel 文件,实际上:
我认为通过它进行交互是一个非常不幸的决定。
然后我尝试通过 OleDB 工作。这条路让我无处可去,仅仅是因为不可能在那里使用公式。您无法阅读公式 - 您只能将其写下来。总的来说,这种方式显然更好、更快、更愉快,但缺乏编辑公式的能力让我很不爽。
所以我来到了 OpenXML。结果,也是比较难过的一段经历。和他一起工作简直不方便。不知道作者是怎么想的。
我得出了最终的解决方案——OpenXML 的包装器——ClosedXML。该解决方案已经可以编写:
重要缺点: