之前经常用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覆盖的方式,首选将读转为写,写完之后保存覆盖原先的文件
结果如下
很简单的写入,你也可以尝试下更复杂的。比如对数据整理、格式优化等
网上的内容自己整理了一下