博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python处理Excel
阅读量:4882 次
发布时间:2019-06-11

本文共 3207 字,大约阅读时间需要 10 分钟。

Python中一般使用xlrd库来读取Excel文件,使用xlwt库来生成Excel文件,使用xlutils库复制和修改Excel文件。这三个库只支持到Excel2003。pyt

Python中一般使用xlrd库来读取Excel文件,使用xlwt库来生成Excel文件,使用xlutils库复制和修改Excel文件。这三个库只支持到Excel2003。

python-excel主页地址:http://www.python-excel.org/

xlrd

地址:https://pypi.python.org/pypi/xlrd

github地址:https://github.com/python-excel/xlrd

打开excel文件,获取一个Book()对象:

1
2
import 
xlrd
book 
= 
xlrd.open_workbook(
"myfile.xls"
)

获取sheets数目:

1
2
>>> book.nsheets
3

获取sheets列表:

1
2
>>> book.sheets()
[<xlrd.sheet.Sheet 
object 
at 
0x01A93970
>, <xlrd.sheet.Sheet 
object 
at 
0x01A93950
>, <xlrd.sheet.Sheet 
object 
at 
0x01A93E70
>]

获取sheets name列表:

1
2
>>> book.sheet_names()
[u
'Sheet1'
, u
'Sheet2'
, u
'Sheet3'
]

获取Book()中的Sheet:

1
2
3
sheet 
= 
book.sheets()[
0
]          
#sheets返回一个sheet列表
sheet 
= 
book.sheet_by_index(
0
)    
#通过索引顺序获取
sheet 
= 
book.sheet_by_name(u
'Sheet1'
)
#通过名称获取

获取行数,列数,名字:

1
2
3
4
5
6
>>> sheet.nrows
1002
>>> sheet.ncols
11
>>> sheet.name
u
'Sheet1'

获取某行,某行值列表,某列,某列值列表:

1
2
3
4
sheet.row(i)
sheet.row_values(i)
sheet.col(i)
sheet.col_values(i)

获取单元格的值:

1
2
3
cell 
= 
sheet.cell(i,j)
cell_value 
= 
sheet.cell_value(i,j)
cell_value 
= 
sheet.cell(i,j).value

需要注意的是,用xlrd读取excel是不能对其进行操作的:xlrd.open_workbook()方法返回xlrd.Book类型,是只读的,不能对其进行操作。

xlwt

地址:http://pypi.python.org/pypi/xlwt,适用于python2.3-2.7

xlwt-future:https://pypi.python.org/pypi/xlwt-future/0.8.0,适用于Python 2.6-3.3

github地址:https://github.com/python-excel/xlwt

创建一个Excel文件并创建一个Sheet:

1
2
3
4
from 
xlwt 
import 
*
book 
= 
Workbook()
sheet 
= 
book.add_sheet(
'Sheet1'
)
book.save(
'myExcel.xls'
)

Workbook类可以有encoding和style_compression参数。

encoding,设置字符编码,style_compression,表示是否压缩。这样设置:w = Workbook(encoding='utf-8'),就可以在excel中输出中文了。默认是ascii。

向sheet写入内容:

1
sheet.write(r, c, label
=
"", style
=
Style.default_style)

简单写入:

1
sheet.write(
0
0
, label 
= 
'Row 0, Column 0 Value'
)

设置格式写入:

1
2
3
4
5
6
7
8
9
font 
= 
xlwt.Font() 
# 字体
font.name 
= 
'Times New Roman'
font.bold 
= 
True
font.underline 
= 
True
font.italic 
= 
True
style 
= 
xlwt.XFStyle() 
# 创建一个格式
style.font 
= 
font 
# 设置格式字体
sheet.write(
1
0
, label 
= 
'Formatted value'
, style) 
# Apply the Style to the Cell
book.save(
'myExcel.xls'
)

写入日期:

1
2
3
style 
= 
xlwt.XFStyle()
style.num_format_str 
= 
'M/D/YY' 
# Other options: D-MMM-YY, D-MMM, MMM-YY, h:mm, h:mm:ss, h:mm, h:mm:ss, M/D/YY h:mm, mm:ss, [h]:mm:ss, mm:ss.0
sheet.write(
0
0
, datetime.datetime.now(), style)

写入公式:

1
2
3
4
sheet.write(
0
0
5
# Outputs 5
sheet.write(
0
1
2
# Outputs 2
sheet.write(
1
0
, xlwt.Formula(
'A1*B1'
)) 
# 输出 "10" (A1[5] * A2[2])
sheet.write(
1
1
, xlwt.Formula(
'SUM(A1,B1)'
)) 
# 输出 "7" (A1[5] + A2[2])

写入链接:

1
sheet.write(
0
0
, xlwt.Formula(
'HYPERLINK("http://www.google.com";"Google")'
)) 
#输出 "Google"链接到http://www.google.com

xlutils

地址:http://pythonhosted.org/xlutils/

github地址:https://github.com/python-excel/xlutils

xlutils.copy.copy(wb)

复制一个xlrd.Book对象,生成一个xlwt.Workbook对象,可以对xlwt.Workbook进行修改。

1
2
3
4
5
6
7
from 
xlrd 
import 
open_workbook
from 
xlutils.copy 
import 
copy
book 
= 
open_workbook(
'myExcel.xls'
)
wbook 
= 
copy(book)  
#wbook即为xlwt.WorkBook对象
wsheet 
= 
wbook.get_sheet(
0
)  
#通过get_sheet()获取的sheet有write()方法
wsheet.write(
0
0
'value'
)
wb.save(
'myExcel.xls'
)

转载于:https://www.cnblogs.com/chenjingyi/p/5740436.html

你可能感兴趣的文章
点分治详解
查看>>
Linux--多网卡的7种Bond模式
查看>>
页面中图片保持不拉伸
查看>>
管理表分区
查看>>
OpenSessionInViewFilter配置
查看>>
p 3750
查看>>
Vue.js--计算属性缓存与method的区别
查看>>
关于MAC升级后,vim更新插件报错
查看>>
npm scripts的生命周期管理
查看>>
JS 中 ++i 和i++的区别
查看>>
hadoop多次格式化后,导致datanode启动不了
查看>>
linux 下ab压力测试
查看>>
javascript实例学习之六—自定义日历控件
查看>>
web的几种返回顶部
查看>>
关于js的toFixed()方法
查看>>
算24
查看>>
CentOS 7(64位) 下Docker的安装
查看>>
Python的Django REST框架中的序列化及请求和返回
查看>>
大数据时代 企业须打好信息资源攻坚战
查看>>
SWAP的罪与罚
查看>>