xlrd 和xlwt 是Python 的第三方库,它可以用来读写 Excel 中的数据,支持 .xls 和 .xlsx 的EXCEL格式
xlrd 和 xlwt 要是针对Office 2013或更早版本的XLS文件格式 ,对xlsx 支持较弱。
xlrd
主要用于读取 EXCEL中的信息
安装xlrd
pip install xlrd <span class="hljs-comment" style="color: #7f9f7f;">#在线安装xlrd</span>
导入模块
<span class="hljs-keyword" style="color: #e3ceab;">import</span> xlrd
打开指定的 Excel
方法1:xxx.py 程序 和 xxx.xlsx 在同一目录
<span class="hljs-comment" style="color: #7f9f7f;"># encoding : utf-8</span>
<span class="hljs-keyword" style="color: #e3ceab;">import</span> xlrd
data = xlrd.open_workbook(<span class="hljs-string" style="color: #cc9393;">"1.xlsx"</span>) <span class="hljs-comment" style="color: #7f9f7f;">#获取EXCEL 工作簿对象</span>
方法2:打开指定目录的 Excel
注意要这里的 ‘ / ’正斜杠 和 ‘ \ ‘ 反斜杠 ,r代表不转义 在Windows系统中,正斜杠/表示除法,用来进行整除运算;反斜杠\用来表示目录。 在Unix系统中,/表示目录;\表示跳脱字符将特殊字符变成一般字符(如enter,$,空格等)。
filepath=<span class="hljs-string" style="color: #cc9393;">r'D:/python demo/text/1.xlsx'</span>
data = xlrd.open_workbook(filepath) <span class="hljs-comment" style="color: #7f9f7f;">#获取EXCEL</span>
获取工作表
sheet= data.sheets()[<span class="hljs-number" style="color: #8cd0d3;">0</span>] <span class="hljs-comment" style="color: #7f9f7f;">#通过索引顺序获取 </span>
sheet= data.sheet_by_index(<span class="hljs-number" style="color: #8cd0d3;">0</span>) <span class="hljs-comment" style="color: #7f9f7f;">#通过索引顺序获取 </span>
sheet= data.sheet_by_name(<span class="hljs-string" style="color: #cc9393;">'Sheet1'</span>) <span class="hljs-comment" style="color: #7f9f7f;">#通过名称获取</span>
获取 Excel 总行数和总列数
nrows = sheet.nrows <span class="hljs-comment" style="color: #7f9f7f;">#获取EXCEL表格中的总行数 </span>
ncols = sheet.ncols <span class="hljs-comment" style="color: #7f9f7f;">#总列数</span>
获取指定行 的对象,返回一个 LIST 列表 第一行,列 的序号(坐标)为0
row_list = sheet.row_values(<span class="hljs-number" style="color: #8cd0d3;">0</span>) <span class="hljs-comment" style="color: #7f9f7f;">#返回第行的数据,用一个列表保存</span>
col_list = sheet.col_values(<span class="hljs-number" style="color: #8cd0d3;">0</span>) <span class="hljs-comment" style="color: #7f9f7f;">#第一列</span>
循环列表中的数据,如下图
<span class="hljs-keyword" style="color: #e3ceab;">for</span> i <span class="hljs-keyword" style="color: #e3ceab;">in</span> range(nrows):
<span class="hljs-keyword" style="color: #e3ceab;">print</span> (sheet.row_values(i))
<span class="hljs-string" style="color: #cc9393;">'''
['序号', '下单时间', '图片', '品牌', '码数', '单价', '汇率', '境内运费', '国际运费', '总价']
['A1', 42778.0, '', '阿迪', 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]
['A2', 42779.0, '', '耐克', 2.0, 2.0, 2.0, 2.0, 2.0, 2.0]
'''</span>
获取单元格(CELL) 中的 数据,类型为str ,有两种方法
A1=sheet.cell_value(<span class="hljs-number" style="color: #8cd0d3;">0</span>,<span class="hljs-number" style="color: #8cd0d3;">0</span>) <span class="hljs-comment" style="color: #7f9f7f;">#方法1</span>
B2=sheet.cell(<span class="hljs-number" style="color: #8cd0d3;">1</span>,<span class="hljs-number" style="color: #8cd0d3;">1</span>).value <span class="hljs-comment" style="color: #7f9f7f;">#方法2</span>
注意事项:
1、xlsx 中的图片信息不能读取,(测试不能读取,返回空字符串 ” )
2、如果你设在Excel 中 设置了日期格式,需要进行转换,否则返回 EXCEL日期的 常规数据形式
其他库,参考:http://www.gocalf.com/blog/python-read-write-excel.html