[发明专利]一种利用Python实现两类多个Excel电子表格合并数据的方法在审

专利信息
申请号: 201710836075.7 申请日: 2017-09-16
公开(公告)号: CN107544814A 公开(公告)日: 2018-01-05
发明(设计)人: 陈兴雷;任金乐 申请(专利权)人: 陈兴雷;任金乐
主分类号: G06F9/44 分类号: G06F9/44
代理公司: 暂无信息 代理人: 暂无信息
地址: 233040 安徽省蚌*** 国省代码: 安徽;34
权利要求书: 查看更多 说明书: 查看更多
摘要: “一种利用Python实现两类多个Excel电子表格合并数据的方法”属于数据表应用领域的一项发明。在现实办公环境中,经常需要利用Excel电子表格分发、收集和汇总数据,特别是在汇总合并大量格式电子表格时,既费时费力,又容易出错。本发明即是利用Python解决这一现实中常见的大量Excel电子表格合并技术问题,以保证数据合并的准确性和时效性。在解决这一技术问题时,将数据合并类型区分为填表式合并和新增行式合并两类,利用Python编程设计两类数据合并工具方法,运行后即可得到相应合并后的数据。此发明主要用于填表式和新增行式两类Excel数据表的自动化汇总,减少人力劳动时间,提高工作效率。
搜索关键词: 一种 利用 python 实现 两类多个 excel 电子表格 合并 数据 方法
【主权项】:
一种利用Python实现两类多个Excel电子表格合并数据的方法,在Windows XP或Win7系统中安装有Microsoft Excel2003或2007和Python2.7.2,并安装有xlrd1.1.0、xlwt1.3.0和xlutils2.0.0站点包(3个站点包下载解压后将其xlrd、xlwt和xlutils文件夹拷备至C:/Python27/Lib/site‑packages目录下即可)的前提下,具体步骤为:(1) 将待合并的文件拷备至桌面目录下;(2) 运行程序/Python2.7/IDLE(Python GUI),通过Ctr+N或File/New Window新建一Untitled代码窗口;(3) 将Python程序代码拷备至此窗口中,按F5保存文件到桌面目录(与待合并文件同一目录)并运行,Python程序如下:#!/usr/bin/env python#coding=GBKimport os,sys,time,tkFileDialog,shutil,xlrd,xlwt,xlutils.copydef fill_in(files_i,filename):    master_open=xlrd.open_workbook(filename)    open_master=xlutils.copy.copy(master_open)    master_table0=master_open.sheet_by_index(0)    master_sheet0=open_master.get_sheet(0)    master_nrows=master_table0.nrows    master_ncols=master_table0.ncols    for L in files_i:        file_i_open=xlrd.open_workbook(L)        open_file_i=xlutils.copy.copy(file_i_open)        file_i_table0=file_i_open.sheet_by_index(0)        file_i_sheet0=open_file_i.get_sheet(0)        i=0        j=0        for i in range(0,master_nrows):            for j in range(0,master_ncols):                master_cell_ij=master_table0.cell(i,j).value                file_i_cell_ij=file_i_table0.cell(i,j).value                if master_cell_ij!=file_i_cell_ij:                    master_sheet0.write(i,j,file_i_cell_ij)                else:                    pass        open_master.save(os.getcwd()+'/汇总结果_填表式合并汇总.xls')        print *************************************************        print ***+L.split('//')[‑1]+>>>>完成汇总***    print ***>>>请到当前目录中查看汇总结果_填表式合并汇总.xls文件def fill_incells(files_i,filename):    master_open=xlrd.open_workbook(filename)    open_master=xlutils.copy.copy(master_open)    master_table0=master_open.sheet_by_index(0)    master_sheet0=open_master.get_sheet(0)    master_nrows=master_table0.nrows#行数    master_ncols=master_table0.ncols#列数    Nrow_Sum=0    print /n/n请注意,需要输入如下参量,输入大了会丢数据,输小了会出现原标题***    flag=int(input(母文件标题行数有几行,如果是3行,则输入3:))    for L in files_i:        file_i_open=xlrd.open_workbook(L)        open_file_i=xlutils.copy.copy(file_i_open)        file_i_table0=file_i_open.sheet_by_index(0)        file_i__nrows=file_i_table0.nrows#行数        file_i__ncols=file_i_table0.ncols#列数        file_i_sheet0=open_file_i.get_sheet(0)        i=0        j=0        Nrow_Sum=Nrow_Sum+flag        for i in range(flag,file_i__nrows):            for j in range(0,file_i__ncols):                cell_ij=file_i_table0.cell(i,j).value                master_sheet0.write(Nrow_Sum,j,cell_ij)            Nrow_Sum+=1        Nrow_Sum=Nrow_Sum‑flag+1        print *************************************************        print ***+L.split('//')[‑1]+>>>>完成汇总***    open_master.save(os.getcwd()+'/汇总结果_行增式合并汇总.xls')    print ***>>>请到当前目录中查看汇总结果_行增式合并汇总.xlsfilename = tkFileDialog.askopenfilename(title=r请选择母文件,initialdir=(os.getcwd()))filename=filename.encode(GBK)#码转换windows编码为GBKfilenames = tkFileDialog.askopenfilenames(title=r请选择子文件,initialdir=(os.getcwd()),initialfile='')filenames=filenames.encode(GBK)#码转换windows编码为GBKfiles_i=[]filenames=filenames.split('} {')for L in filenames:    L=L.strip('}')    L=L.strip('{')    files_i.append(L)a=[]a=filename.split('/')filename=os.getcwd()+/+a[‑1]choice=input(/n***选择合并文件的方式,填表式合并输入1,还是行增式合并输入0:)if int(choice)==1:    #填表式合并主要工具    fill_in(files_i,filename)    time.sleep(3)else:    if int(choice)==0:        #行式合并主要工具        fill_incells(files_i,filename)        time.sleep(3)    else:        print '输入错误,请重新运行程序'        time.sleep(3)time.sleep(1)os.system(explorer.exe %s % os.getcwd())kill_command='taskkill /FI WINDOWTITLE eq tk /IM py* /T /F'os.system(kill_command)(4) 按提示对话框选择合并文件的母文件与子文件(多个子文件应一次性框选或按Ctr点选);(5) 按合并文件的类型选择文件合并的方式,如果是填表式合并,输入1,则直接输出合并结果到当前目录中,完成合并;如果是行增式合并,输入0,再依提示输入行标题的行数后,如输入3,将同样直接输出合并结果到当前目录,完成合并。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于陈兴雷;任金乐,未经陈兴雷;任金乐许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201710836075.7/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top