2017年11月5日 星期日 晴

 之前我有用过一些Python处理Excel文件的经验,要么用xlrd只读,要么用xlwt写一个全新的Excel文件,要么只读,要么写全新的,两者不能并存。昨天有个需求是要修改现成Excel文件的某一列的,本来我遍历读一遍文件的每一个sheet的每一行,然后再重新写一遍进去,这也是可以的,但格式可能不正确。

在网上搜罗到了xlutils这个模块,事情简单了好多。xlutils是基于xlrd和xlwt做的,安装命令:pip install xlutils

在用xlrd.open_workbook时,添加参数formatting_info=True,可以保留原有格式。简单例子如下:

[code] from xlutils.copy import copy; oldWb = xlrd.open_workbook(destfile, formatting_info=True) newWb = copy(oldWb) newWs = newWb.get_sheet(SHEET_PAGE) for row in range(31,total_rows): key = v_GERAN_v1_dest[row] newWs.write(row, 2, ’new value’) newWb.save(destfile) [/code]