文档章节

python 第三方包之xlwt 转换成excel

文弱书生_罗剑
 文弱书生_罗剑
发布于 2015/08/17 21:54
字数 803
阅读 261
收藏 5


简介


xlrd是python的一个第三方模块,可以实现跨平台读Microsoft Excel文件。(它有一个兄弟叫xlwt,专注于写Excel文件。)

它并不像win2com那样借助COM技术来访问Excel,而是直接分析Excel文件格式,从中解析数据。因此你可以在任何支持python的平台上使用excel文件。这一点它比win2com要优秀得多。

另外,它对unicode支持的很好,这也是我青睐它的重要原因。

它的工作原理所限,我们不能期望它覆盖Excel全部的功能,访问到全部的数据。

比如,下面这些数据类型xlrd会忽略掉:


图表,宏,图片等嵌入对象(包括嵌入的worksheet)。

VBA模块。

公式(只能识别公式的计算结果,而不是公式本身)。

注释。

链接。

但一些简单的读取还是得心应手的,这已经能满足大多数情况下的需求。

现在它能支持的Excel版本包括:2004, 2003, XP, 2000, 97, 95, 5.0, 4.0, 3.0, 2.1, 2.0。 官方未说明它是否能支持Excel 2007。

它有两个分支,分别是:


xlrd (http://pypi.python.org/pypi/xlrd) 针对Python 2.x系列。

xlrd3(http://pypi.python.org/pypi/xlrd3) 针对Python 3.x系列。


这两个分支是100%兼容的,也就是说,它们的使用完全一样,你在3.x系列中怎么用xlrd,在2.x系列中仍然这么用。

以下的实际操作都使用xlrd3,在python 3.2下完成。


试用


假设我们有一个文件叫test.xls,位于D:\Workspace\Python\xlrd3-test\test.xls

其内容如下:

clipboard[1]

clipboard[1]


这是一张9行4列的PC主机报价单,当然,价格全是扯淡。

下面使用xlrd程序将PC这张表的内容打印出来。


01 import xlrd3

02  

03 def main():

04    xlsfile=xlrd3.open_workbook("D:\\Workspace\\Python\\xlrd3-test\\test.xls")

05    try:

06        mysheet = xlsfile.sheet_by_name("PC")

07    except:

08        print("no sheet in %s named PC")

09        return

10  

11    # total rows and cols

12    print("%d rows, %d cols"%(mysheet.nrows, mysheet.ncols))

13  

14    for row in range(0, mysheet.nrows):

15        temp=""

16        for col in range(0, mysheet.ncols):

17            if mysheet.cell(row, col).value != None:

18                temp+=str(mysheet.cell(row, col).value)+"\t"

19        print(temp)

20  

21 if __name__ == '__main__':

22    main()

输出:


clipboard[2]

clipboard[2]


将lang下的txt文件导出到一个excel里:


 

view sourceprint?

01.import os

02.import glob

03.path = os.getcwd()

04.files = glob.glob('../trunk/Resource/lang/ja/*.txt')

05.import xlwt3

06.if len(files) > 0:

07.wb = xlwt3.Workbook()

08.for file in files:

09.fileName = file.split('\\')[1].split('.')[0]

10.print(fileName)

11.ws = wb.add_sheet(fileName)

12.with open(file, encoding='utf-8') as a_file:

13.line_number = 0

14.for a_line in a_file:

15.a_line = a_line.rstrip()

16.mark = a_line.find("=")

17.ws.write(line_number, 0, a_line[0:mark])

18.ws.write(line_number, 1, a_line[mark+1:])

19.ws.col(0).width = 8000

20.ws.col(1).width = 40000

21.line_number += 1

22.a_file.close()

23.wb.save('langPack_ja.xls')


将sourceExcel下的excel文件导出为各txt文件:

view sourceprint?

01.import os

02.import glob

03.import xlrd3 as xlrd

04.import re

05. 

06.path = os.getcwd()

07. 

08.files = glob.glob('sourceExcel/*')

09. 

10.for file in files:

11.wb = xlrd.open_workbook(file)

12.for sheetName in wb.sheet_names():

13.txtFile = open('outputTxts/' + sheetName + '.txt', mode='w', encoding='utf-8')

14.sheet = wb.sheet_by_name(sheetName)

15.for rownum in range(sheet.nrows):

16.v1 = sheet.cell(rownum, 0).value

17.if (type(v1) == float):

18.v1 = str(v1)

19.v1 = re.sub('\.0*$', "", v1)

20.v1 = v1.rstrip()

21.v2 = sheet.cell(rownum, 1).value

22.if (type(v2) == float):

23.v2 = str(v2)

24.v2 = re.sub('\.0*$', "", v2)

25.v2 = v2.rstrip()

26.dataStr = v1 + '=' + v2 + '\n'

27.txtFile.write(dataStr)

28.txtFile.close()


© 著作权归作者所有

文弱书生_罗剑
粉丝 4
博文 81
码字总数 17500
作品 0
长沙
程序员
私信 提问
Python处理csv、xlsx、pdf

一、csv文件的处理 CSV(Comma-Separated Values)即逗号分隔值,可以用Excel打开查看。由于是纯文本,任何编辑器也都可打开。与 Excel 文件不同,CSV 文件中: 值没有类型,所有值都是字符串 ...

blackfoxya
2018/06/08
977
0
Python xlrd、xlwt、xlutils读取、修改Excel文件

Python xlrd、xlwt、xlutils读取、修改Excel文件 一、xlrd读取excel 这里介绍一个不错的包xlrs,可以工作在任何平台。这也就意味着你可以在Linux下读取Excel文件。 首先,打开workbook; impo...

Sophia_tj
2015/06/12
6.9K
0
xlrd/xlwt - python与excel表格交互

开始使用xlrd,下载安装包,解压,安装省略 下载http://pypi.python.org/pypi/xlrd 假设我的表格文件叫demo.xls,三个sheet,第一个sheet内容如下 则要访问3行第D列单元格则使用如下代码 >>...

彼得
2014/03/11
1K
0
Python和它高大上的插件们

Python操作Excel: Python操作Excel主要依赖两个库: xlrd(用于读Excel):https://pypi.python.org/pypi/xlrd This package is for reading data and formatting information from Excel ......

Iuranus
2014/12/16
355
0
这是Python操作Excel表格最好的教材, 爬虫工程师都对它爱不释手

因为数据是用.csv格式保存的,所以我们通常用Excel来处理。然而其工作量是非常大的,反复操作一些相同的动作,所以Python爬虫师那种动则几十万的数据量,都会利用Python脚本来给我们处理。 ...

Python新世界
2018/08/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

防止流量劫持有效途径-安装SSL证书

  在互联网的世界里,流量就等于金钱。而流量劫持是指,利用各种恶意软件、木马病毒,修改浏览器、锁定主页或不停弹出新窗口等方式,强制用户访问某些网站,从而造成用户流量损失的情形。 ...

安信SSL证书
22分钟前
2
0
关于工作流程数据模版的设置与使用.

关键字:ccbpm数据模版 解释说明:数据模版就是当前工作人员历史发起的历史流程里,把一些具有代表性的设置为模版,下次在启动流程的时候,选择模版里的数据在发起流程,避免重复数据录入的工...

ccflow周朋
36分钟前
4
0
第一个只出现一次的字符

处理字符串中重复或者次数出现等问题,最常用的就是哈希表,用字符串中的字符作为key,字符出现次数作为value,假定只有ASCII码范围内的字符,则可以开辟一个256大小的int数组,将每个字符(...

Garphy
37分钟前
6
0
通过构建区块链来学习区块链-1-Transaction|Block|POW

原文链接:https://medium.com/@vanflymen/learn-blockchains-by-building-one-117428612f46 交易Transaction 区块Block 工作量证明 你来这里是因为,和我一样,你对加密货币的崛起感到兴奋。...

Riverzhou
44分钟前
4
0
大数据最核心的关键技术——32个算法,记得收藏!

奥地利符号计算研究所的Christoph Koutschan博士在自己的页面上发布了一篇文章,提到他做了一个调查,参与者大多数是计算机科学家,他请这些科学家投票选出最重要的算法,以下是这次调查的结...

大数据金罗
今天
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部