Python2.7 xlrd读取、xlwt写入、xlutils读写Excel表格内容

之前经常用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]           # 获取第1sheet的名字,可与获取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覆盖的方式,首选将读转为写,写完之后保存覆盖原先的文件


结果如下


很简单的写入,你也可以尝试下更复杂的。比如对数据整理、格式优化等

网上的内容自己整理了一下

猜你喜欢

转载自blog.csdn.net/u013783095/article/details/80055530