python第三方库——xlrd和xlwt操作Excel文件学习

简介: python第三方库——xlrd和xlwt操作Excel文件学习http://www.bieryun.com/1135.html 一、xlrd和xlwt的安装 xlrd和xlwt是python的第三方库,所以是需要自己安装的,可以在python的官网https://pypi.python.org/pypi下载该模块来安装,也可以通过其他手段,比如easy_install或者pip,我在Win7环境下已经安装好pip,所以就在命令符窗口中用如下命令来安装xlrd和xlwt。

python第三方库——xlrd和xlwt操作Excel文件学习http://www.bieryun.com/1135.html



一、xlrd和xlwt的安装

xlrd和xlwt是python的第三方库,所以是需要自己安装的,可以在python的官网https://pypi.python.org/pypi下载该模块来安装,也可以通过其他手段,比如easy_install或者pip,我在Win7环境下已经安装好pip,所以就在命令符窗口中用如下命令来安装xlrd和xlwt。

pip install xlrd

pip install xlwt

运行过程如下:

二、xlrd使用介绍

1、导入模块
import xlrd
2、打开Excel文件读取数据
data = xlrd.open_workbook('excelFile.xls')
3、使用技巧
获取一个工作表
table = data.sheets()[0]          #通过索引顺序获取
table = data.sheet_by_index(0) #通过索引顺序获取

table = data.sheet_by_name(u'Sheet1')#通过名称获取

获取整行和整列的值(数组)
table.row_values(i)
table.col_values(i)

获取行数和列数
nrows = table.nrows
ncols = table.ncols

循环行列表数据
for i in range(nrows):
print table.row_values(i)

单元格
cell_A1 = table.cell(0,0).value
cell_C4 = table.cell(2,3).value

使用行列索引
cell_A1 = table.row(0)[0].value
cell_A2 = table.col(1)[0].value

简单的写入
row = 0
col = 0

# 类型 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
ctype = 1 value = '单元格的值'
xf = 0 # 扩展的格式化
table.put_cell(row, col, ctype, value, xf)
table.cell(0,0)  #单元格的值'
table.cell(0,0).value #单元格的值'

 
 
用例如下:

[python] view plain copy

  1. # _*_ coding:utf-8 _*_
  2. #----------------------------------------------------------------------------
  3. # import modules 
  4. #----------------------------------------------------------------------------
  5. import os
  6. import xlrd
  7. from datetime import date,datetime
  8. #打开Excel文件
  9. workbook = xlrd.open_workbook('09-10.11-38-12-HTTP-GOOD-1-Lte1sDataStat_Charts.xlsx')
  10. #输出Excel文件中所有sheet的名字
  11. print workbook.sheet_names()
  12. #根据sheet索引或者名称获取sheet内容
  13. Data_sheet    = workbook.sheets()[0]
  14. CdfData_sheet = workbook.sheet_by_index(1)
  15. Charts_sheet  = workbook.sheet_by_name(u'Charts')
  16. #获取sheet名称、行数和列数
  17. print Data_sheet.name,    Data_sheet.nrows,    Data_sheet.ncols,\
  18.       CdfData_sheet.name, CdfData_sheet.nrows, CdfData_sheet.ncols,\
  19.       Charts_sheet.name,  Charts_sheet.nrows,  Charts_sheet.ncols
  20. #获取整行和整列的值(列表)    
  21. rows = Data_sheet.row_values(0#获取第一行内容
  22. cols = Data_sheet.col_values(1#获取第二列内容
  23. #print rows
  24. #print cols
  25. #获取单元格内容
  26. cell_A1 = Data_sheet.cell(0,0).value
  27. cell_C1 = Data_sheet.cell(0,2).value
  28. cell_B1 = Data_sheet.row(0)[1].value
  29. cell_D2 = Data_sheet.col(3)[1].value
  30. print cell_A1, cell_B1, cell_C1, cell_D2
  31. #获取单元格内容的数据类型
  32. #ctype:0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
  33. print 'cell(0,0)数据类型:', Data_sheet.cell(0,0).ctype
  34. print 'cell(1,0)数据类型:', Data_sheet.cell(1,0).ctype
  35. print 'cell(1,1)数据类型:', Data_sheet.cell(1,1).ctype
  36. print 'cell(1,2)数据类型:', Data_sheet.cell(1,2).ctype
  37. #获取单元格内容为日期的数据
  38. date_value = xlrd.xldate_as_tuple(Data_sheet.cell_value(1,0),workbook.datemode)
  39. print date_value
  40. print '%d:%d:%d' %(date_value[3:])
  41. d = {'11:25:59':[123], '11:26:00':[234], '11:26:01':[345]}
  42. print d['11:25:59']
  43. print d['11:26:00']
  44. print d['11:26:01']
  45. print d['11:25:59'][0]
  46. print d['11:26:00'][0]
  47. print d['11:26:01'][0]
 

三、xlwt使用介绍

Xlwt简介
功能:用于生成97/2000/XP/2003xls文件。
Python版本:Python2.3 to 2.7
当前版本:0.7.5
平台:跨平台

相关模块
csv             python标准模块。推荐。
xlrd            读取 .xls, .xlsx 文件。
xlutils       xlrd和xlwt的集合。
openpyxl 读写 Excel 2007 xlsx/xlsm文件 。纯python,效率不高。
Matplotlib      2D作图模块,适用于基于excel作图。
Pywin32   python windows扩展 ,不跨平台,通过COM口连接excel。
Pyxll           在excel中使用python替代vbs。http://www.pyxll.com/。类似模块有pyinex。Python For Excel http://www.opentradingsystem.com/PythonForExcel/main.html
XlsxWriter      写xlsx文件。纯python。

快速入门
下面例子,创建一个名为mini.xls的文件,它有一个空sheet:'xlwt was here'。代码见mini.py。
fromxlwt import *
w =Workbook()
ws = w.add_sheet('xlwtwas here')
w.save('mini.xls')

Workbook类初始化时有encoding和style_compression参数。

encoding,设置字符编码,一般要这样设置:w = Workbook(encoding='utf-8'),就可以在excel中输出中文了。默认是ascii。当然要记得在文件头部添加:

# -*- coding: utf-8-*-

style_compression 表示是否压缩,不常用。
Workbook 还有一些属性:
Owner 设置文档所有者。
country_code: 国家码
wnd_protect: 窗口保护
obj_protect: 对象保护
Protect: 保护
backup_on_save: 保存时备份
Hpos: 横坐标
Vpos: 纵坐标
Width: 宽度
Height: 高度
active_sheet: 活动sheet
tab_width: tab宽度
wnd_visible: 窗口是否可见
wnd_mini: 窗口最小化
hscroll_visible: 横向滚动条是否可见。
vscroll_visible: 纵向滚动条是否可见。
tabs_visible: tab是否可见。
dates_1904: 是否使用1904日期系统
use_cell_values: 单元格的值
default_style: 默认样式
colour_RGB: 颜色

方法有:add_style,add_font,add_str,del_str,str_index,add_rt,rt_index,add_sheet,get_sheet,raise_bad_sheetname,convert_sheetindex,setup_xcall,add_sheet_reference。

用例如下

[python] view plain copy

  1. # _*_ coding:utf-8 _*_
  2. #----------------------------------------------------------------------------
  3. # import modules 
  4. #----------------------------------------------------------------------------
  5. import os
  6. import xlwt
  7. def set_style(name, height, bold = False):
  8.     style = xlwt.XFStyle()   #初始化样式
  9.     font = xlwt.Font()       #为样式创建字体
  10.     font.name = name
  11.     font.bold = bold
  12.     font.color_index = 4
  13.     font.height = height
  14.     style.font = font
  15.     return style
  16. def write_excel():
  17.     #创建工作簿
  18.     workbook = xlwt.Workbook(encoding='utf-8')
  19.     #创建sheet
  20.     data_sheet = workbook.add_sheet('demo')
  21.     row0 = [u'字段名称', u'大致时段''CRNTI''CELL-ID']
  22.     row1 = [u'测试''15:50:33-15:52:14'227064190202]
  23.     #生成第一行和第二行
  24.     for i in range(len(row0)):
  25.         data_sheet.write(0, i, row0[i], set_style('Times New Roman'220True))
  26.         data_sheet.write(1, i, row1[i], set_style('Times New Roman'220True))
  27.     #保存文件
  28.     workbook.save('demo.xls')
  29. if __name__ == '__main__':
  30.     write_excel()
  31.     print u'创建demo.xlsx文件成功'
相关文章
|
2月前
|
机器学习/深度学习 XML 数据可视化
python常用的第三方库有哪些?
python常用的第三方库有哪些?
593 28
|
2月前
|
机器学习/深度学习 Python
堆叠集成策略的原理、实现方法及Python应用。堆叠通过多层模型组合,先用不同基础模型生成预测,再用元学习器整合这些预测,提升模型性能
本文深入探讨了堆叠集成策略的原理、实现方法及Python应用。堆叠通过多层模型组合,先用不同基础模型生成预测,再用元学习器整合这些预测,提升模型性能。文章详细介绍了堆叠的实现步骤,包括数据准备、基础模型训练、新训练集构建及元学习器训练,并讨论了其优缺点。
82 3
|
23天前
|
Python 容器
Python学习的自我理解和想法(9)
这是我在B站跟随千锋教育学习Python的第9天,主要学习了赋值、浅拷贝和深拷贝的概念及其底层逻辑。由于开学时间紧张,内容较为简略,但希望能帮助理解这些重要概念。赋值是创建引用,浅拷贝创建新容器但元素仍引用原对象,深拷贝则创建完全独立的新对象。希望对大家有所帮助,欢迎讨论。
|
3天前
|
存储 算法 Serverless
剖析文件共享工具背后的Python哈希表算法奥秘
在数字化时代,文件共享工具不可或缺。哈希表算法通过将文件名或哈希值映射到存储位置,实现快速检索与高效管理。Python中的哈希表可用于创建简易文件索引,支持快速插入和查找文件路径。哈希表不仅提升了文件定位速度,还优化了存储管理和多节点数据一致性,确保文件共享工具高效运行,满足多用户并发需求,推动文件共享领域向更高效、便捷的方向发展。
|
5天前
|
数据可视化 数据挖掘 大数据
1.1 学习Python操作Excel的必要性
学习Python操作Excel在当今数据驱动的商业环境中至关重要。Python能处理大规模数据集,突破Excel行数限制;提供丰富的库实现复杂数据分析和自动化任务,显著提高效率。掌握这项技能不仅能提升个人能力,还能为企业带来价值,减少人为错误,提高决策效率。推荐从基础语法、Excel操作库开始学习,逐步进阶到数据可视化和自动化报表系统。通过实际项目巩固知识,关注新技术,为职业发展奠定坚实基础。
|
14天前
|
Python
Python学习的自我理解和想法(10)
这是我在千锋教育B站课程学习Python的第10天笔记,主要学习了函数的相关知识。内容包括函数的定义、组成、命名、参数分类(必须参数、关键字参数、默认参数、不定长参数)及调用注意事项。由于开学时间有限,记录较为简略,望谅解。通过学习,我理解了函数可以封装常用功能,简化代码并便于维护。若有不当之处,欢迎指正。
|
25天前
|
存储 索引 Python
Python学习的自我理解和想法(6)
这是我在B站千锋教育学习Python的第6天笔记,主要学习了字典的使用方法,包括字典的基本概念、访问、修改、添加、删除元素,以及获取字典信息、遍历字典和合并字典等内容。开学后时间有限,内容较为简略,敬请谅解。
|
24天前
|
计算机视觉 Python
如何使用Python将TS文件转换为MP4
本文介绍了如何使用Python和FFmpeg将TS文件转换为MP4文件。首先需要安装Python和FFmpeg,然后通过`subprocess`模块调用FFmpeg命令,实现文件格式的转换。代码示例展示了具体的操作步骤,包括检查文件存在性、构建FFmpeg命令和执行转换过程。
41 7
|
29天前
|
存储 程序员 Python
Python学习的自我理解和想法(2)
今日学习Python第二天,重点掌握字符串操作。内容涵盖字符串介绍、切片、长度统计、子串计数、大小写转换及查找位置等。通过B站黑马程序员课程跟随老师实践,非原创代码,旨在巩固基础知识与技能。
|
29天前
|
程序员 Python
Python学习的自我理解和想法(3)
这是学习Python第三天的内容总结,主要围绕字符串操作展开,包括字符串的提取、分割、合并、替换、判断、编码及格式化输出等,通过B站黑马程序员课程跟随老师实践,非原创代码。
下一篇
开通oss服务