Python 如何以编程方式将csv导入excel并使用excel格式?

Python 如何以编程方式将csv导入excel并使用excel格式?,python,excel,csv,xlsxwriter,Python,Excel,Csv,Xlsxwriter,我有一个非常大(>200万行)的csv文件,正在内部web服务中生成和查看。问题是,当此系统的用户希望导出此csv以运行自定义查询时,他们会在excel中打开这些文件。Excel正在尽其所能地格式化数字,但也有一些请求要求数据采用xlsx格式,并带有过滤器等等 问题归结为:使用python2.7,如何将一个大的csv文件(>200万行)读入excel(或多个excel文件)并控制格式?(日期、数字、自动筛选等) 我对python和内部excel解决方案持开放态度。如果没有关于csv中数据类型的更

我有一个非常大(>200万行)的csv文件,正在内部web服务中生成和查看。问题是,当此系统的用户希望导出此csv以运行自定义查询时,他们会在excel中打开这些文件。Excel正在尽其所能地格式化数字,但也有一些请求要求数据采用xlsx格式,并带有过滤器等等

问题归结为:使用python2.7,如何将一个大的csv文件(>200万行)读入excel(或多个excel文件)并控制格式?(日期、数字、自动筛选等)


我对python和内部excel解决方案持开放态度。

如果没有关于csv中数据类型的更多信息,或者您对excel正确处理这些数据类型的确切问题,您很难给出确切的答案

但是,我们建议查看这个模块(),它可以在Python中用于创建xlsx文件。我没有用过它,但它的功能似乎比你需要的更多


特别是当您需要在多个文件或工作簿之间拆分时。看起来您可以预先创建过滤器,并完全控制可以使用的格式化

,但其格式化功能有限。另一个选项是使用,我认为它比
openpyxl
具有更多的格式化功能。另一个选项是使用pythonwin32扩展并使用excel的COM接口。诀窍是抄袭现有的VB脚本。但实际上,这在VB或C中可能更容易实现。我从未使用过powershell、VB或C。目前,xlsxWriter的性能非常差,无法真正处理我给它的工作负载(即使是将这一行从csv复制到xlsx)。xlsxWriter可以处理所有这些功能、格式和自动筛选,但200万行是大量数据,Excel对每个工作表的限制约为100万行。请确保在XlsxWriter中使用
常量_内存
模式,但即使如此,它也可能需要大约每百万个单元15秒(大概的数字)。我最终获得了所需的性能,使用多处理库在一个进程中规范化csv中的数据,然后将其传递到另一个进程以格式化为excel。当我有更多的时间时,我将发布一个带有一些性能统计数据的解决方案的最小示例。