Python Excel操作库 xlrd 和xlwt

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