Merge CSV to Excel

Overview

周五老板说有没有用python把csv合并到excel中的例子,用python还是比较方便的。

Read more

openpyxl with big data

背景

最近写了一个脚本,用 openpyxl 从 sql server 数据库中读取数据,使用 template 文件,将数据填充进去,生成最后的 daily report。

使用 openpyxl 来操作 excel,很方便,但发现当要写入大量数据的时候,时间非常慢,而且非常占内存。

最直接的原因是 openpyxl 会将读写过的 cell 都加载在内存中方便后面 update,不会释放这些 cell 而会一直驻留在内存中。

所以如果单纯写的话建议使用 xlrd,而且 pandas 有 to_csv/to_excel 这样的直接的方法。

但是因为我需要使用模板,在研究后发现 openpyxl 有 read_only/write_only 的模式,可以满足我的需求。
(一定要保证安装了 lxml 库,不然就算使用 write_only 模式,也一样会点用大量占存。)

Note:针对 office2007 以后的版本,xlsx 文件上限行数大约为 100 多万条的样子。

Read more

Compare data by pandas

背景

最近的项目会根据一些数据的值来得到一定的结果,用户原来使用 python 直接生成 excel 文件,我们相当于移植到数据库中,使用 SP 去做业务逻辑。

所以理论上最后的结果需要一致,之前没有做全部数据的对比,这次相关 features 由我在改动,所以无论如何还是要保证数据能对比上,所以就写了相关的脚本来处理。

Read more

Count data rows in excel

背景

今天手动给用户提供了 Report,其中需要对 excel 中的数据与数据库中的进行对比。数据文件不少,我要一个个打开去数,真的很费时间。

想要写一个小脚本,但发现没那么快,还是先手动给做了,写一个还是挺快的。

Read more

Process data by pandas

背景

最近做了一些数据处理方面的事,用到了 pandas,记录一下。

  • python 3.6.5
  • pandas 0.25
  • xlrd 1.2.0

默认包引入:

1
import pandas as pd
Read more

Compare Excel

背景

下周可能有一个小任务是由于系统升级,需要保证生成的 excel 是一致的,所以写了一个非常简单的对比脚本。

Read more

openpyxl

openpyxl

之前测试PamReport的报表,需要对比txt和excel报表,用java(org.apache.poi)写了对比的脚本。但感觉还是有些麻烦,
java在文本io方面还是不够灵活方便。今天试了python的openpyxl这个库,感觉真的的特别好用,就试着用了一下基本操作。

Read more