• 技术文章 >常见问题 >Python常见问题

    python合并几个表格的方法

    yangyang2020-05-12 14:21:04原创2558

    python合并单元格代码如下:

    import xlrd
    import xlsxwriter
    import glob
    
    biao_tou = "NULL"
    wei_zhi = "NULL"
    
    #获取要合并的所有exce表格
    def get_exce():
        global wei_zhi
        wei_zhi = input("请输入Exce文件所在的目录:")
        all_exce = glob.glob(wei_zhi + "*.xlsx")
        print("该目录下有" + str(len(all_exce)) + "个exce文件:")
        if(len(all_exce) == 0):
            return 0
        else:
             for i in range(len(all_exce)):
                 print(all_exce[i])
             return all_exce					
            
    
    
    #打开Exce文件
    def open_exce(name):
        fh = xlrd.open_workbook(name)
        return fh
    
    #获取exce文件下的所有sheet
    def get_sheet(fh):
        sheets = fh.sheets()
        return sheets
    
    
    #获取sheet下有多少行数据
    def get_sheetrow_num(sheet):
        return sheet.nrows
        
    
    
    #获取sheet下的数据
    def get_sheet_data(sheet,row):
        for i in range(row):
            if (i == 0):
                global biao_tou
                biao_tou = sheet.row_values(i)
                continue
            values = sheet.row_values(i)
            all_data1.append(values)
            
        return all_data1
        
    
    if __name__=='__main__':
        all_exce = get_exce()
        #得到要合并的所有exce表格数据
        if(all_exce == 0):
            print("该目录下无.xlsx文件!请检查您输入的目录是否有误!")
            os.system('pause')
            exit()
    
        all_data1 = []
        #用于保存合并的所有行的数据
    
    
        #下面开始文件数据的获取
        for exce in all_exce:
            fh = open_exce(exce)
            #打开文件
            sheets = get_sheet(fh)
            #获取文件下的sheet数量
    
    
            for sheet in range(len(sheets)):
                row = get_sheetrow_num(sheets[sheet])
                #获取一个sheet下的所有的数据的行数
    
                all_data2 = get_sheet_data(sheets[sheet],row)
                #获取一个sheet下的所有行的数据
    
        all_data2.insert(0,biao_tou)
        #表头写入
    
        
    
    
        #下面开始文件数据的写入
        new_exce = wei_zhi + "test.xlsx"
        #新建的exce文件名字
    
        
        fh1 = xlsxwriter.Workbook(new_exce)
        #新建一个exce表
    
        new_sheet = fh1.add_worksheet()
        #新建一个sheet表
    
        for i in range(len(all_data2)):
            for j in range(len(all_data2[i])):
                c = all_data2[i][j]
                new_sheet.write(i,j,c)
                
        fh1.close()
        #关闭该exce表
        
        print("文件合并成功,请查看“" + wei_zhi + "”目录下的test.xlsx文件!")
                
        os.system('pause')
        os.system('pause')

    程序使用说明:

    (1) 运行”Exce表格合并.exe”文件

    (2) 输入要合并的所有.xlsx表格文件所在的盘目录**(注意不要输错目录,输错目录或者乱输入则直接强制退出)**

    (3) 输入完按回车后程序自动执行,生成test.xlsx文件

    注意:如果原来就存在test.xlsx文件,必须先删除,不然合并后的数据会保存在原来的test.xlsx文件,并且程序会一闪而过

    更多Python知识请关注Python视频教程栏目。

    专题推荐:python
    上一篇:python excel模块包怎么安装? 下一篇:python不能找到自己写的包怎么办

    相关文章推荐

    • python中的re是什么模块?• python cv2模块怎么安装?

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网