之前经常用python读取Excel内容,后来有一段时间不用了再用就给忘记了,觉得记录还是很有必要的
1. 首选安装xlrd
安装方法很简单,如果装了pip的话 pip install xlrd
2. python代码
实现的功能:将Excel的内容按照字典形式打印出来
结果:[{'user': 'hehe', 'psd': '1111111', 'result': '1111111'}, {'user': 'hehe', 'psd': '1111111', 'result': '1111111'}, {'user': 'hehe', 'psd': '1111111', 'result': '1111111'}, {'user': 'hehe', 'psd': '1111111', 'result': '1111111'}]
#!/usr/local/bin/python2.7 # encoding: utf-8 import xlrd import os """ 读取excel内容 """ class readExcel(object): def __init__(self, name): """获取当前路径""" curpath = os.path.dirname(__file__) """获取excel文件【与当前脚本在同一级目录下】""" self.filename = os.path.join(curpath, name) self.excel_handle = xlrd.open_workbook(self.filename) # 路径不包含中文 # sheet1 = self.excel_handle.sheet_names()[1] # 获取第1个sheet的名字,可与获取name函数一起使用 # sheet = self.excel_handle.sheet_by_name('Sheet1') # 根据名字获取 self.sheet = self.excel_handle.sheet_by_index(0) # 根据索引获取第一个sheet # print sheet.name,sheet.nrows,sheet.ncols # 获取sheet的表格名称、总行数、总列数 self.row_num = self.sheet.nrows # 行 # col_num = sheet.ncols # 列 def readDic(self): dic = {} arr = [] row1 = self.sheet.row_values(0) # 因为是Unicode编码格式,因此需要转成utf-8 for i in range(1, self.row_num): dic[row1[0].encode('utf-8')] = self.sheet.row_values(i)[0].encode('utf-8') dic[row1[1].encode('utf-8')] = self.sheet.row_values(i)[1].encode('utf-8') dic[row1[2].encode('utf-8')] = self.sheet.row_values(i)[2].encode('utf-8') arr.append(dic) return arr if __name__ == '__main__': # read_excel = readExcel('测试.xlsx'.decode('utf-8').encode('gbk')) read_excel = readExcel('Excel.xlsx') read_excel.readDic()
因为Excel.xlsx表中填充的内容是unicode编码,所以做了一次转码,如果不是的话可以不用转。
还有路径中含有中文的解决方案
有时候需要把从别处读到的内容,比如cpu值等,再进行数据分析,这个时候需要用到写入xlwt模块
安装: pip install xlwt
#!/usr/local/bin/python2.7 # encoding: utf-8 import xlwt """ 向excel写入内容 """ class writeExcel(object): def __init__(self): self.excel_w = xlwt.Workbook(encoding='utf-8') # 设置编码格式 self.excel_w_sheet = self.excel_w.add_sheet('MySheet1') # 添加sheet表 def writLabel(self): """向excel写入内容,内容自定义""" style = xlwt.XFStyle() # 初始化样式 font = xlwt.Font() # 为样式创建字体 font.name = 'Times New Roman' # font.bold = True # 黑体 # font.underline = True # 下划线 # font.italic = True # 斜体字 style.font = font # 设定样式 for i in range(10): for j in range(5): self.excel_w_sheet.write(i, j, label='admin%d%d' % (i, j)) # 参数对应 行, 列, 值 self.excel_w.save('Excelw.xls') if __name__ == '__main__': excel_w = writeExcel() excel_w.writLabel()
写入的内容可以是从别处读来的数据
结果如下:
有时候需要再特定的表格中写入一些内容,这个时候这样新建的写入方式就不满足了。python包xlutils则提供读写的功能
安装: pip install xlutils
采用的是copy覆盖的方式,首选将读转为写,写完之后保存覆盖原先的文件
结果如下
很简单的写入,你也可以尝试下更复杂的。比如对数据整理、格式优化等
网上的内容自己整理了一下