人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動態(tài)

python 按照sheet合并多個Excel的示例代碼(多個sheet)

發(fā)布日期:2022-01-22 15:37 | 文章來源:腳本之家

工作中會遇到這樣的需求,有多個Excel的格式一樣,都有多個sheet,且每個sheet的名字和格式一樣,我們需要按照sheet 合并,就是說合并后的表的格式和合并錢的格式是一樣的。A、B、C表格式如圖

現(xiàn)在需要合并成下圖:

我這次處理是保留第一個表的首行,其余的表的首行都不保留。因此結(jié)果會和上面有所不同,上面的是將所有的首行都保存

import xlrd,xlsxwriter
#待合并excel
allxls=["C:/xxx/xxx.xlsx",
  "C:/xxx/xxx.xlsx"]
#目標(biāo)excel
end_xls="C:/xxx/merge.xlsx"

def open_xls(file):
 try:
  fh=xlrd.open_workbook(file)
  return fh
 except Exception as e:
  print("打開文件錯誤:"+e)

#根據(jù)excel名以及第幾個標(biāo)簽信息就可以得到具體標(biāo)簽的內(nèi)容
def get_file_value(filename,sheetnum):
 rvalue=[]
 fh=open_xls(filename)
 sheet=fh.sheets()[sheetnum]
 row_num=sheet.nrows
 for rownum in range(0,row_num):
  rvalue.append(sheet.row_values(rownum))
 return rvalue
def get_file_value_1(filename,sheetnum):
 rvalue=[]
 fh=open_xls(filename)
 sheet=fh.sheets()[sheetnum]
 row_num=sheet.nrows
 for rownum in range(1,row_num):
  rvalue.append(sheet.row_values(rownum))
 return rvalue
#獲取第一個excel的sheet個數(shù)以及名字作為標(biāo)準(zhǔn)
first_file_fh=open_xls(allxls[0])
first_file_sheet=first_file_fh.sheets()
first_file_sheet_num=len(first_file_sheet)
sheet_name=[]
for sheetname in first_file_sheet:
 sheet_name.append(sheetname.name)

#定義一個目標(biāo)excel
endxls=xlsxwriter.Workbook(end_xls)
all_sheet_value=[]
#把所有內(nèi)容都放到列表all_sheet_value中
for sheet_num in range(0,first_file_sheet_num):
 all_sheet_value.append([])
 for i,file_name in enumerate(allxls):
  if i==0:
print("正在讀取"+file_name+"的第"+str(sheet_num+1)+"個標(biāo)簽...")  
file_value=get_file_value(file_name,sheet_num)
all_sheet_value[sheet_num].append(file_value)
  else:
print("正在讀取"+file_name+"的第"+str(sheet_num+1)+"個標(biāo)簽...")  
file_value=get_file_value_1(file_name,sheet_num)
all_sheet_value[sheet_num].append(file_value)

#print(all_sheet_value)
num=-1
sheet_index=-1
#將列表all_sheet_value的內(nèi)容寫入目標(biāo)excel
for sheet in all_sheet_value:
 sheet_index+=1
 end_xls_sheet=endxls.add_worksheet(sheet_name[sheet_index])
 num+=1
 num1=-1
 for sheet1 in sheet:
  for sheet2 in sheet1:
num1+=1
num2=-1
for sheet3 in sheet2:
 num2+=1
 #print(num,num1,num2,sheet3)
 #在第num1行的第num2列寫入sheet3的內(nèi)容
 end_xls_sheet.write(num1,num2,sheet3)
endxls.close()

到此這篇關(guān)于python 按照sheet合并多個Excel的示例代碼(多個sheet)的文章就介紹到這了,更多相關(guān)python 合并多個excel內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部