全球知名电子商务网站统计,一个公司优化需要做多少个网站,容桂网站建设哪家公司好,自媒体专用网站免费pymupdf提取pdf表格非常快速#xff0c;相比其他库是个更好的选择#xff0e;
一个行列多的表格打印成pdf后会由于页宽分页原因变成多个表格#xff0c;提取的多个表格需要合并为一个表格#xff0c;再来处理数据#xff0e;
下面代码中merge函数用于合并表格#xff0…pymupdf提取pdf表格非常快速相比其他库是个更好的选择
一个行列多的表格打印成pdf后会由于页宽分页原因变成多个表格提取的多个表格需要合并为一个表格再来处理数据
下面代码中merge函数用于合并表格addOneAxis0用于合并仅分页导致的多子表
def addOneAxis0(data,one):if len(data)0:#firstroneelse:rdataone[1:]#remove first title rowreturn r def merge(data):outputdata[0]titlesdata[0][0][1:]for i in range(1,len(data)):newtitledata[i][0][1:]# print(titles)# print(newtitle)# input(here)if newtitle[0] in titles:#repeatfor one in data[i][1:]:#add rowoutput.append(one)else:#if newtitle[0] in output[0]:#add column without titlethedatadata[i][1:]#remove titlenlen(thedata)outoutput[-n:]for j in range(len(out)):out[j]thedata[j][1:]passelse:#add column with titlenlen(data[i])outoutput[-n:]for j in range(len(out)):#add columnout[j]data[i][j][1:]passreturn output
def getDataMass(file_name):global doc,curvePagedocfitz.open(file_name) # open documentdata[]mass[]tables[]iNonefor i in range(doc.page_count).__reversed__():page doc[i]tabspage.find_tables()if len(tabs.tables)0:breakelse:tables.append(tabs[0].extract())tables.reverse()for one in tables:if one[0][0]溶液标签:data.append(one)#data.append(one)else:massaddOneAxis0(mass,one)curvePageiprint(data)datamerge(data)print(data)return (data,mass)