python 之 从excel读取内容写到多个文件里简单实例

用python写的一个小程序,需求看 代码注释:

import xlrd
import xmltodict
import time
'''
需求:
    读取excel里的数据,遍历每一行的第一列读取出来,写入到一个文件里面去。
    例如:excel文件一共有100行,则把这一百行的每一行的第一列写入一人文件里(当然,也可以指定其他列,具体看个人怎么修改),
        以时间为文件名称,会在指定的目录下生成100个文件。
'''
class ExcelData():
    # 初始化方法
    def __init__(self, data_path, sheetname):
        #定义一个属性接收文件路径
        self.data_path = data_path
        # 定义一个属性接收工作表名称
        self.sheetname = sheetname
        # 使用xlrd模块打开excel表读取数据
        self.data = xlrd.open_workbook(self.data_path)
        # 根据工作表的名称获取工作表中的内容(方式①)
        self.table = self.data.sheet_by_name(self.sheetname)
        # 根据工作表的索引获取工作表的内容(方式②)
        # self.table = self.data.sheet_by_name(0)
        # 获取第一行所有内容,如果括号中1就是第二行,这点跟列表索引类似
        self.keys = self.table.row_values(0)
        # 获取工作表的有效行数
        self.rowNum = self.table.nrows
        # 获取工作表的有效列数
        self.colNum = self.table.ncols

    # 定义一个读取excel表的方法
    def readExcel(self):
        # 定义一个空列表
        datas = []
        print(self.rowNum)
        for i in range(0, self.rowNum):
            # 为了防止生成的文件比时间快,所以设计让其睡0.1秒
            time.sleep(0.1)
            # 取每一行的第一列的内容
            c_cell = self.table.cell_value(i, 0)
            # print('================================================')
            # 解析取出来的报文
            context = parseXml(c_cell)
            # 报文内容以文件写出
            exportFile(context)
        # 返回从excel中获取到的数据:以列表存字典的形式返回
        return datas

def parseXml(str):
    print('--------------------------------------')
    convertedDict = xmltodict.parse(str,encoding='utf-8')
    con = convertedDict['ROOT']['BODY']
    return con

# 导出为文件
def exportFile(context):
    if len(context) != 0:
        name = 'E:\\python_workspace\\files\\'+str(time.time()).replace('.','')+'.Rcv'
        fh = open(name,'w',encoding='utf-8')
        fh.write(context)
        fh.close()


if __name__ == "__main__":
    # excel的地址
    data_path = "C:\\Users\\Administrator\\Desktop\\export_tty1.xls"
    # sheet 名称
    sheetname = "Sheet1"
    get_data = ExcelData(data_path, sheetname)
    datas = get_data.readExcel()
    # print(datas)
    # print('E:\\python_workspace\\files'+str(time.time()).replace('.','')+'.xml')

你可能感兴趣的:(python,python,excel)