工作当中经常要操作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文档相关推荐

  1. 用python处理excel-使用Python操作Excel文档(一)

    Python | 使用Python操作Excel文档(一) 0 前言 在阅读本文之前,请确保您已满足或可能满足以下条件: 请确保您具备基本的Python编程能力. 请确保您会使用Excel. 请确保您 ...

  2. 用 Python 帮运营妹纸快速搞定 Excel 文档

    Microsoft Office 被广泛用于商务和运营分析中, 其中 Excel 尤其受欢迎.Excel 可以用于存储表格数据.创建报告.图形趋势等.在深入研究用 Python 处理 Excel 文档 ...

  3. VB中操作Excel文档

    ​​​​​​​篇一:利用 Python 操作 Excel文档 利用 Python 操作 Excel 在Excel 2010中打开VBA编辑器,请按 Alt + F11 打开: 以下代码在 Excel ...

  4. Java web--利用java操作excel文档

    在web应用程序的开发中,如果需要将Excel文档中的信息导入数据库或将数据库的信息导出到Excel文档中,需要应用程序访问Excel文件.目前,操作Excel文档的java组件主要有Jxl和POI两 ...

  5. Java实战—POI操作Excel文档、读取、写入、合并单元格

    一.POI项目简介 POI全称 Poor Obfuscation Implementation,利用POI接口可以通过JAVA操作Microsoft office 套件工具的读写功能.官网:http: ...

  6. 使用MFC自动化操作Excel文档

    使用MFC自动化操作Excel文档 项目中要用到MFC操作Excel文件,在网上搜的结果,有把Excel当数据库处理的,也有直接操作Excel的,最终在MSDN上看到的结果,测试后觉得好用些. 使用基 ...

  7. python打开word并插入图片_Python操作word文档插入图片和表格的实例演示

    前言 图片是Word的一种特殊内容,这篇文章主要介绍了关于Python操作word文档,向里面插入图片和表格的相关内容,下面话不多说了,来一起看看详细的代码 实例代码: # -*- coding: U ...

  8. golang如何操作excel文档

    目录 需求 分析 实现 日历时间 生成excel表头 style 参考 直接使用 github上关注较多的两个libary是 github.com/tealeg/xlsx 然而xlsx:NOT ACT ...

  9. VS操作Excel文档

    1.打开一个Excel模板文档 Excel.Application app = new Excel.Application(); app.Visible = false; app.UserContro ...

最新文章

  1. 突破微信小程序五层层级限制的解决方案
  2. [ffmpeg]安装
  3. 【数据结构与算法】之深入解析“按要求补齐数组”的求解思路与算法示例
  4. (译)Windsor入门教程---第三部分 编写第一个Installer
  5. 万物互联、应用现代化、云原生新范式,华为云为数字化转型提供最优解
  6. 《坐热板凳》第八次团队作业:Alpha冲刺(第二天)
  7. Gulp,grunt,seajs/require和browserify/webpack的区别
  8. tensorflow python3 decode_python安装tensorflow后import出错
  9. java中加权滤波怎么用_方向加权中值滤波算法-The Directional Medial Filtering with Weights...
  10. 小白建设一个网站需要什么资料?完整网站建设流程今天告诉你!
  11. getSreenWH()
  12. Java基础-----匿名对象
  13. C++基础中的基础——平行四边形
  14. 在手机上进行python开发的软件推荐
  15. 【BP数据预测】基于matlab斑点鬣狗算法优化BP神经网络数据预测【含Matlab 219期】
  16. 总结 拦截器(Interceptor) 和 过滤器(Filter)的区别
  17. C# 汉字转拼音 拼音转汉字 简体繁体互转
  18. C语言中字符数组的初始化与赋值
  19. MTP模式下恢复手机误删数据方法(MX2、MX3亲测可用)
  20. python摄像头动作捕捉_OpenMMD:没有专业摄像设备也能动作捕捉!K帧动作设计苦手的福音~...

热门文章

  1. 成本中心和内部订单浅析
  2. 历届冬奥会举办地与举办时间
  3. 三种会计科目表:运营会计科目表、国家会计科目表、集团会计科目表
  4. SAP 选择屏幕的收起与展开(Collapse and Expand)
  5. 主从mysql能过滤指定dml吗_MyCat教程二:mysql主从复制实现 - HG-93
  6. java 转换成时间戳_Java 实例 – 时间戳转换成时间 - Java 基础教程
  7. error: a label can only be part of a statement and a declaration is not a statement
  8. 18python入门到精通_《Python从入门到精通(60课)》18 序列类型之元组
  9. java通过maven构建项目实现日志生成模拟(一)创建maven项目+安装配置Fastjson.jar和Logback.jar 和 slf4j.jar
  10. Python教程:zip 函数的用法