工作当中经常要操作excel文档,有些完全是纯粹的重复劳动。在我的工作中就遇到这样一个需求:
1. 存在两个excel文档(source.xls/target.xls),列数据是一致的
2. 文档source.xls的数据来源于target.xls,经常要修改source.xls文档中的数据,但是两个文档中有一列(COLUMN_INDEX)的数据只要存在就会保持不变
3. 文档target.xls已经存在一个office控件,可以从某个数据库读取数据,写回该文档
4. 数据库中的数据每天都会更新
5. 需要经常更新source.xls,将不存在该文档但存在于target.xls的数据copy过来,依据列(COLUMN_INDEX)
需求出来了,google了下,发现可以用xlrd/xlwt来操作excel文档,模块名取得挺有意思哦,根据名字看,显示xlrd用来读excel,xlwt用来写罗。至于为啥读和写会是不同的第三方包,或者是excel的数据存取比较复杂吧。
xlrd模块api文档:http://www.lexicon.net/sjmachin/xlrd.html#xlrd.Cell-class
下面是Python实现:
#!/usr/bin/env python
#coding=utf-8
'''
created by 2010-6-26
author: py_zhu
'''
import xlrd
import xlwt
SOURCE_FILE = "source.xls"
TARGET_FILE = "target.xls"
RESULT_FILE = "result.xls"
COLUMN_INDEX = 3
def readColumnIndex():
columnIndex = -1;
#read column index(from config file)
columnIndex = COLUMN_INDEX
return columnIndex
def calc():
source = set([])
target = dict()
columnIndex = readColumnIndex()
sheet = xlrd.open_workbook(SOURCE_FILE).sheet_by_index(0)
for i in range(sheet.nrows):
source.add(sheet.cell_value(i, columnIndex))
sheet = xlrd.open_workbook(TARGET_FILE).sheet_by_index(0)
for i in range(sheet.nrows):
#(cell_value, rowIndex)
target.put(sheet.cell_value(i, columnIndex), i)
for i in source:
if i in target:
del target[i]
#create new execel file
workbook = xlwt.Workbook(encoding = 'utf-8')
resultSheet = workbook.add_sheet('result_sheet')
resultRows = target.values()
for i in range(len(resultRows)):
for j in range(sheet.ncols):
resultSheet.write(i, j, sheet.cell_value(resultRows[i], j))
workbook.save(RESULT_FILE)
def main():
calc()
if __name__ == '__main__':
main()
source code
分享到:
相关推荐
python excel xlrd xlwt python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库.
收集Python操作Excel引用的模块安装文件,包括xlrd(读)、xlwt(写)和xlutils(修改)
python中通过xlwt、xlrd和xlutils操作xls xlwt模块用于在内存中生成一个xls/xlsx对象,增加表格数据,并把内存中的xls对象保存为本地磁盘xls文件; xlrd模块用于把本地xls文件加载到内存中,可以读取xls文件的...
主要介绍了python使用xlrd和xlwt读写Excel文件的实例代码,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
主要介绍了Python xlrd/xlwt 创建excel文件及常用操作,帮助大家更好的理解和使用python办公,感兴趣的朋友可以了解下
只能操作已存在的excel 依赖: 1. xlrd 2. xlwt 3. xlutils 全局变量: 1. 文件名称 2 工作薄对象 3. sheet对象 4. copy的工作薄对象 5. copy的sheet对象 6. 单元格样式对象 7. 当前 sheet 有效行数 8. ...
本文使用xlrd读取excel文件(xls,sxls格式),使用xlwt向excel写入数据 一、xlrd和xlwt的安装 安装很简单,windos+r调出运行窗口,输入cmd,进入命令行窗口,输入以下命令。 安装xlrd: pip install xlrd 安装xlwt: ...
目录一、使用xlrd读取excel二、使用xlrd + xlutils写入数据三、使用xlwt设置样式常见问题1.PermissionError2.NotImplementedError3.Excel无法打开文件”xxx.xlsx” 简介 库 主要功能 支持excel xlrd 读取...
文章目录一、介绍二、安装方法三、 excel表格描述四、xlrd读取excel文件4.1 获取WorkBook对象4.1 xlrd操作sheet对象4.2 xlrd操作cell对象五、xlwt写入excel文件5.1 简单操作步骤5.2 常用API参考5.3 代码实例5.4 给...
后来在网上查阅发现xlrd可以通过Python代码读取Excel的文件,他的含义是xls文件的read(只读),另外它的同类是xlwt(xls的write喽~),这个是可以执行写入操作的库。那我们就开始: 作为一名新手,Python的dalao...
提供的形式有很多种,最经常使用的是Excel, 而 数据的统计和分析采用的是 python, 使用 python 把数据存在Excel 也是常见的事情,也有很多的库帮我们做了很多引擎的事情,比如说xlrd 和xlwt, 分别为读excel和写...
首先,将需要更改的excel文件打开,用xlutils包的copy将excel文件对象拷贝一份,然后进行修改操作 具体代码实现: import xlrd import xlwt from xlutils.copy import copy # 打开想要更改的excel文件 old_excel =...
使用python操作excel文档必需的库,安装cmd命令:pip install *.whl
1.python读取excel中的超链接 2.python写入超链接和锚文本 3.demo很简单,两种方式。
其中包括三个包和一个文档(en) 1 xlrd-0.7.7.tar.gz 2 xlwt-0.7.4.tar.gz 3 xlutils-1.5.2.tar.gz 4 python-excel.pdf 其中三个包内都有示例文件参考 再加上一个Working with Excel files in Python 的文档。 剩下的...
后来在网上查阅发现xlrd可以通过Python代码读取Excel的文件,他的含义是xls文件的read(只读),另外它的同类是xlwt(xls的write喽~),这个是可以执行写入操作的库。那我们就开始: 作为一名新手,Python的dalao...