python execl介绍

上传人:第*** 文档编号:32695134 上传时间:2018-02-12 格式:DOCX 页数:5 大小:18.64KB
返回 下载 相关 举报
python execl介绍_第1页
第1页 / 共5页
python execl介绍_第2页
第2页 / 共5页
python execl介绍_第3页
第3页 / 共5页
python execl介绍_第4页
第4页 / 共5页
python execl介绍_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《python execl介绍》由会员分享,可在线阅读,更多相关《python execl介绍(5页珍藏版)》请在金锄头文库上搜索。

1、13.3 读写 Excel 文件本节介绍如何使用 xlrd, xlwt 库读写 Excel 文件,使用这些库的好处在于它不需要使用 COM 接口驱动 Microsoft Excel,也就是说你不需要安装微软的 Office 套件也可以操作 Excel 文件。xlrd 库的下载地址:http:/pypi.python.org/pypi/xlrdxlwt 库的下载地址: http:/pypi.python.org/pypi/xlwtxlutils 库的下载地址:http:/pypi.python.org/pypi/xlutils英文帮助文档:http:/www.python-excel.org13

2、.3.1 写 Excel 文件先 来 看 看 如 何 使 用 xlwt 库 写 Excel 文 件。和 Excel 文 档 的 结 构 类 似,一 个 Excel 文 件 对 应 一 个xlwt.Workbook 对象,我们通过操作此对象修改 Excel 文档的内容,最后调用其 save 方法将文档保存成文件。通过操作 Workbook 对象我们可以创建如下的对象:? WorkSheet : 通过 Workbook.add_sheet 方法创建 WorkSheet 对象,或者通过 get_sheet 方法获取已经存在的 WorkSheet 对象。? Row :使用 Worksheet.row

3、方法创建或者获取一行? Column :使用 Worksheet.col 方法创建或者获取一列13.3 读写 Excel 文件 295 用 Python 做科学计算 试读版? Cell :通过 Worksheet.write 或者 Row.write 方法可以直接写某个单元格下面是一个简单的例子:? write_xls.py演示写 Excel 文件1 # -*- coding: utf-8 -*-2 import numpy as np3 from xlwt import *45 book = Workbook()6 sheet1 = book.add_sheet(u随机数)7 head =

4、 normal, power, gamma, SUM8 N = 1009 data = np.vstack(10 np.random.normal(size=N),11 np.random.power(a=1.0,size=N),12 np.random.gamma(0.9,size=N)13 )14 # 创建对齐配置15 al = Alignment()16 al.horz = Alignment.HORZ_CENTER17 al.vert = Alignment.VERT_CENTER18 # 创建边框配置19 borders = Borders()20 borders.bottom =

5、Borders.THICK21 # 创建样式22 style = XFStyle()23 style.alignment = al24 style.borders = borders25 # 获得第 0 行26 row0 = sheet1.row(0)27 # 将标题写入第 0 行,使用所创建的样式28 for i, text in enumerate(head):29 row0.write(i, text, style=style)30 # 写入随机数31 for i, line in enumerate(data):32 for j, value in enumerate(line):33

6、 sheet1.write(j+1, i, value)34 # 写求和公式,注意公式中的单元格下标从 1 开始计数35 for i in xrange(N):36 sheet1.row(i+1).set_cell_formula(37 3, Formula(sum(A%s:C%s) % (i+2, i+2), calc_flags=1)3839 # 设置 4 列的宽度40 for i in xrange(4):41 sheet1.col(i).width = 400042 # 设置第 0 行的高度296 第 13 章 数据和文件用 Python 做科学计算 试读版43 sheet1.row

7、(0).height_mismatch = 144 sheet1.row(0).height = 100045 book.save(tmp.xls)程序的输出文件如图 13.3 所示。程序中除了将数组写入 Excel 文件之外,还演示了各种属性的配置:? 通过 write 方法的 style 关键字指定单元格的样式,样式的创建比较麻烦,但也很直观,通过分别创建 Aligment、Borders 等对象配置样式的各个属性,然后创建 XFStyle 对象引用各种配置? 通过创建 Formula 可以将 Excel 的公式写入文档? 通过设置 Row 和 Column 对象的 width 和 hei

8、ght 等属性设置行和列的宽度和高度图 13.3 - 用 xlwt 输出的 Excel 文件xlwt 的 Utils 子库中有些经常会用的辅助函数:? col_by_name : 将列名转换为列的编号,例如将 C 转换为 2? cell_to_rowcol : 将单元格的字符串表达变换为行列编号,它返回一个 4 个元素的元组:(行编号, 列编号 , 行是否为绝对坐标, 列是否为绝对坐标)? cell_to_rowcol2 : 和 cell_to_rowcol 类似,但是只返回编号信息? rowcol_to_cell : 和 cell_to_rowcol 相反,将编号变换为字符串表达? cell

9、range_to_rowcol_pair : 将字符串表示的范围变换为一个 4 元元组:(起始行号, 起始列号,结束行号, 结束列号 )? rowcol_pair_to_cellrange : 和 cellrange_to_rowcol_pair 相反下面是几个例子: from xlwt import Utils Utils.cell_to_rowcol(C4)(3, 2, False, False) Utils.cell_to_rowcol(C8)(7, 2, False, False)13.3 读写 Excel 文件 297 用 Python 做科学计算 试读版 Utils.cell_t

10、o_rowcol2(C8)(7, 2) Utils.cell_to_rowcol($C$8)(7, 2, True, True) Utils.rowcol_to_cell(200,100)CW201 Utils.rowcol_to_cell(200,100, row_abs=True, col_abs=True)$CW$20113.3.2 读 Excel 文件读 Excel 文 件 需 要 使 用 xlrd 库, 下 面 的 程 序 读 入 上 节 输 出 的 tmp.xls 文 件, 因 此 请 先 运 行write_xls.py 生成 tmp.xls 之后再运行下面的程序。xlrd 不能直

11、接读取 xlwd 输出的公式单元格,需要先用 Excel 打开文档并保存之后才能用 xlrd 计算公式单元格首先我们从 xlrd 导入打开 WorkBook 的函数 open_workbook,并且用它打开 tmp.xls 文件。? read_xls.py用 xlrd 库读取 Excel 文件 from xlrd import open_workbook book = open_workbook(tmp.xls)接下来可以调用 book 的属性和方法获得我们所需要的信息: book.nsheets # Sheet 数1 print book.sheet_names()0 # 第一个 Sheet

12、 的名字随机数 sheet = book.sheets()0 # 获得第一个 Sheet调用 sheet 的 cell, row, col 等方法可以读取 sheet 中指定的单元格、行以及列中的元素。这些方法返回的是 Cell 对象,如果我们希望直接获得它们的值,可以调用 cell_value, row_values 和col_values等方法: sheet.cell(0, 0) # 读取 A1 的内容text:unormal sheet.row(0) # 读取第一行的内容text:unormal, text:upower, text:ugamma, text:uSUM# 读取第二列的内容

13、,从第二行开始,并对其求和 sum(x.value for x in sheet.col(1, start_rowx=1)50.080880120307619 sum(sheet.col_values(1, start_rowx=1) # 同上50.080880120307619298 第 13 章 数据和文件 sheet.cell(1,3) # 读取公式单元格的值number:0.41405871399469785如果我们需要读取某个 Excel 文件,修改其中的某些内容然后再写回 Excel 文件中去,那么可以使用xlutils 库中的 copy 函数快速完成从 xlrd.Book 的 x

14、lwt.WorkBook 的转换复制工作。下面的程序在tmp.xls 中添加一些文字,然后写到 output.xls 文件中去:#coding=utf8from xlrd import open_workbookfrom xlutils.copy import copyrb = open_workbook(tmp.xls,formatting_info=True)wb = copy(rb)ws = wb.get_sheet(0)ws.write(0, 4, u我添加了一些内容)wb.save(output.xls)import xlrdfname = sample.xlsbk = xlrd.open_workbook(fname)shxrange = range(bk.nsheets)try:sh = bk.sheet_by_name(Sheet1)except:print no sheet in %s named Sheet1 % fnamereturn Nonenrows = sh.nrowsncols = sh.ncolsprint nrows %d, ncols

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 职业教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号