在数据分析和运营的过程中,有非常多的时候需要提供给别人使用,提供的形式有很多种,最经常使用的是Excel, 而 数据的统计和分析采用的是 python, 使用 python 把数据存在Excel 也是常见的事情,也有很多的库帮我们做了很多引擎的事情,比如说xlrd 和xlwt, 分别为读excel和写excel。
安装xlrd和xlwt
python中安装第三方模块都较为简单,同样的使用pip 命令就可以:
1
2
|
pip install xlrd
pip install xlwt
|
在这里准备上一份Excel,你也可以自己创建一份,这份Excel中有一些现成的数据供我们使用。
xlrd读取Excel的数据
读取的步骤为:
- 打开Excel
- 选择表单
- 按行读取数据
读取的代码片段:
1
2
3
4
5
6
|
import xlrd
data = xlrd.open_workbook( 'sample-salesv3.xlsx' )
table = data.sheets()[ 0 ]
nrows = table.nrows
for i in range (nrows ):
print table.row_values(i)
|
可以输出如下的结果:
1
2
3
4
5
6
|
[u 'account number' , u 'name' , u 'sku' , u 'quantity' , u 'unit price' , u 'ext price' , u 'date' ]
[ 740150.0 , u 'Barton LLC' , u 'B1-20000' , 39.0 , 86.69 , 3380.91 , u '2014-01-01 07:21:51' ]
[ 714466.0 , u 'Trantow-Barrows' , u 'S2-77896' , - 1.0 , 63.16 , - 63.16 , u '2014-01-01 10:00:47' ]
[ 218895.0 , u 'Kulas Inc' , u 'B1-69924' , 23.0 , 90.7 , 2086.1 , u '2014-01-01 13:24:58' ]
[ 307599.0 , u 'Kassulke, Ondricka and Metz' , u 'S1-65481' , 41.0 , 21.05 , 863.05 , u '2014-01-01 15:05:22' ]
[ 412290.0 , u 'Jerde-Hilpert' , u 'S2-34077' , 6.0 , 83.21 , 499.26 , u '2014-01-01 23:26:55' ]
|
如果想直接读到某一行某一列,可以直接使用 table.cell(0,0).value
其中,0,0 为0行0列。
xlwt把数据写入Excel
使用xlwt把数据写入Excel中,add_sheet 中可以添加表单,可以设置单元格的格式如字体和颜色,更多的可以参看 文档https://xlwt.readthedocs.io/en/latest/api.html 和github上的例子 https://github.com/dimagi/tablib/tree/master/tablib/packages/xlwt/examples
1
2
3
4
5
6
7
8
9
10
11
12
13
|
import xlwt
from datetime import datetime
style0 = xlwt.easyxf( 'font: name Times New Roman, color-index red, bold on' ,
num_format_str = '#,##0.00' )
style1 = xlwt.easyxf(num_format_str = 'D-MMM-YY' )
wb = xlwt.Workbook()
ws = wb.add_sheet( 'A Test Sheet' )
ws.write( 0 , 0 , 1234.56 , style0)
ws.write( 1 , 0 , datetime.now(), style1)
ws.write( 2 , 0 , 1 )
ws.write( 2 , 1 , 1 )
ws.write( 2 , 2 , xlwt.Formula( "A3+B3" ))
wb.save( 'example.xls' )
|
总结
以上所述是小编给大家介绍的python中使用xlrd读excel使用xlwt写excel的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:https://www.cnblogs.com/bugingcode/archive/2018/01/31/8392776.html