表格合并,python的基础应用

excel表格合并

  1. Xlsx是python用来构造xlsx文件的模块,可以向excel2007+中写text,numbers,formulas 公式以及hyperlinks超链接。
    可以完成xlsx文件的自动化构造,包括:
    合并单元格,制作excel图表等功能:
  2. xlsxwriter:负责写入数据;xlrd:负责读取数据
  3. Xlwt 模块有一个bug, 就是所用样式过多的话,之后的数据将使用不了样式,相反xlsxwriter 模块 不会有此问题。
  4. 此问题的思路在于处理不同表格的sheet,读取到sheet个数然后接着读取sheet所有的行数,然后依次遍历加入新的列表存储进新的文件。

import xlrd
import xlsxwriter
def open_xls(file):#打开文件
    fh=xlrd.open_workbook(file)
    return fh
def getsheet(fh):#获取sheet
    return fh.sheets()
def getnrows(fh,sheet):#获取sheet行数
    table=fh.sheets()[sheet]
    return table.nrows
def getFilect(file,shnum):#读取文件内容并返回行内容
    fh=open_xls(file)
    table=fh.sheets()[shnum]
    num=table.nrows
    for row in range(num):#按sheet行遍历
        rdata=table.row_values(row)
        newdatavalue.append(rdata)#将每个sheet的所有值存入一个列表
    return newdatavalue
def getshnum(fh):#获取sheet表的个数
    x=0
    sh=getsheet(fh)
    for sheet in sh:
        x+=1
    return x

if __name__=='__main__':
    allxls=['C:/Users/Administrator.MACHENI-KA32LTP/Desktop/test.xlsx','C:/Users/Administrator.MACHENI-KA32LTP/Desktop/test2.xlsx'] #定义要合并的excel文件列表
    newdatavalue=[]#存储所有读取的结果
    for fl in allxls:#遍历文件
        fh=open_xls(fl)
        x=getshnum(fh)
        for shnum in range(x):#遍历sheet
            print("正在读取文件:"+str(fl)+"的第"+str(shnum)+"个sheet表的内容...")
            rvalue=getFilect(fl,shnum)#函数里面遍历sheet的每一行
    endfile='E:/test.xlsx'  #定义最终合并后生成的新文件
    wb1=xlsxwriter.Workbook(endfile)#创建一个sheet工作对象
    ws=wb1.add_worksheet()
    for a in range(len(rvalue)):#sheet个数
        for b in range(len(rvalue[a])):#sheet中的元素个数
            c=rvalue[a][b]
            ws.write(a,b,c)
    wb1.close()
    print("文件合并完成")

你可能感兴趣的:(表格合并,python的基础应用)