欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

python xlwt xlrd_用xlrd和xlwt操作Excel文档

发布时间:2025/3/19 python 34 豆豆
生活随笔 收集整理的这篇文章主要介绍了 python xlwt xlrd_用xlrd和xlwt操作Excel文档 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

工作当中经常要操作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()

1

0

分享到:

2010-06-26 22:04

浏览 7378

评论

总结

以上是生活随笔为你收集整理的python xlwt xlrd_用xlrd和xlwt操作Excel文档的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。