午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁技術(shù)文章
文章詳情頁

python openpyxl 帶格式復(fù)制表格的實現(xiàn)

瀏覽:168日期:2022-06-25 10:20:30

有合并單元格的,先把合并單元格復(fù)制過去,合并單元格用wm=list(zip(wbsheet.merged_cells))得出合并單元格列表,把其中的(<CellRange A1:A4>,) 替換成為A1:A4格式

再從新表中合并單元格

再用.has_style: #拷貝格式 測試是否有格式,再復(fù)制格式和數(shù)據(jù)

其中:

font(字體類):字號、字體顏色、下劃線等

fill(填充類):顏色等

border(邊框類):設(shè)置單元格邊框

alignment(位置類):對齊方式

number_format(格式類):數(shù)據(jù)格式

protection(保護類):寫保護

import os#找文件目錄import win32com.client as win32 #操作excel文件from tqdm import tqdm #進度條顯示from openpyxl import load_workbook # 讀取時導(dǎo)入這個from openpyxl.styles import Font, Alignment #設(shè)置單元格格式from openpyxl.utils import get_column_letter, column_index_from_stringfrom openpyxl.styles import PatternFill, Border, Side, Alignment, Protection, Fontfrom copy import copypath=input(’輸入整理前原始路徑: ’)if path=='':path=os.getcwd()xlsx_lists=[]xls_lists=[]for file in os.listdir(path): filename=os.path.join(path,file) if os.path.isfile(filename): #是目錄 if filename.endswith('.xls'): xls_lists.append(filename) if filename.endswith('.xlsx'): xlsx_lists.append(filename)source_file=’原始數(shù)據(jù).xlsx’if os.path.exists(os.path.join(os.getcwd(),source_file)):os.remove(os.path.join(os.getcwd(),source_file))choose='1'excel = win32.gencache.EnsureDispatch(’Excel.Application’)# while choose not in '1|2':# choose =input('xls轉(zhuǎn)為xlsx:1 xlsx轉(zhuǎn)為xls:2 ')if choose=='1':with tqdm(total=len(xls_lists),desc=’寫文件數(shù) ’,leave=True,unit=’個’,unit_scale=True,mininterval=0.5,bar_format=None) as pbar:for xls_list in xls_lists:pbar.update(1)wb = excel.Workbooks.Open(xls_list)wb.SaveAs(xls_list+'x', FileFormat = 51) #FileFormat = 51 is for .xlsx extensionwb.Close()#FileFormat = 56 is for .xls extensionpbar.close()else:with tqdm(total=len(xls_lists),desc=’寫文件數(shù) ’,leave=True,unit=’個’,unit_scale=True,mininterval=0.5,bar_format=None) as pbar:for xlsx_list in xlsx_lists:pbar.update(1)wb = excel.Workbooks.Open(xlsx_list)wb.SaveAs(xlsx_list[0:len(xlsx_list)-1], FileFormat = 56) #FileFormat = 51 is for .xlsx extensionwb.Close() pbar.close()excel.Application.Quit()tag_file=’拆分后表.xlsx’totaldata=pd.DataFrame()writer=pd.ExcelWriter(tag_file)totaldata.to_excel(writer, ’sheet’)writer.save()book = load_workbook(tag_file) #能寫入已存在表中wb = load_workbook(’原始數(shù)據(jù).xlsx’)for sheet in wb.sheetnames:print(sheet)wbsheet=wb[sheet]for num in range(3):name=wbsheet.cell(1,num*15+10).valuewbsheet_new = book.create_sheet(name,0)wm=list(wbsheet.merged_cells) #開始處理合并單元格形式為“(<CellRange A1:A4>,),替換掉(<CellRange 和 >,)’ 找到合并單元格#print (list(wm))if len(wm)>0 :for i in range(0,len(wm)):cell2=str(wm[i]).replace(’(<CellRange ’,’’).replace(’>,)’,’’)#print('MergeCell : %s' % cell2)wbsheet_new.merge_cells(cell2)for rows in range(40):wbsheet_new.row_dimensions[rows+1].height = wbsheet.row_dimensions[rows+1].height for col in range(14):wbsheet_new.column_dimensions[get_column_letter(col+1)].width = wbsheet.column_dimensions[get_column_letter(col+1)].widthwbsheet_new.cell(row=rows+1,column=col+1,value=wbsheet.cell(rows+1,num*15+col+1).value)if wbsheet.cell(rows+1,num*15+col+1).has_style:#拷貝格式wbsheet_new.cell(row=rows+1,column=col+1).font = copy(wbsheet.cell(rows+1,num*15+col+1).font)wbsheet_new.cell(row=rows+1,column=col+1).border = copy(wbsheet.cell(rows+1,num*15+col+1).border)wbsheet_new.cell(row=rows+1,column=col+1).fill = copy(wbsheet.cell(rows+1,num*15+col+1).fill)wbsheet_new.cell(row=rows+1,column=col+1).number_format = copy(wbsheet.cell(rows+1,num*15+col+1).number_format)wbsheet_new.cell(row=rows+1,column=col+1).protection = copy(wbsheet.cell(rows+1,num*15+col+1).protection)wbsheet_new.cell(row=rows+1,column=col+1).alignment = copy(wbsheet.cell(rows+1,num*15+col+1).alignment)wb.close()book.save(’拆分后表.xlsx’)book.close()

上例中,因為要把一個表拆分為三個,所以要循環(huán)三次

補充:python-excel 之帶有格式及合并單元格樣式的表格復(fù)制

代碼如下:

from openpyxl import load_workbook def copy_excel(totle_excel,totle_sheetname,down_excel,down_sheetname): down = load_workbook(down_excel) totle = load_workbook(totle_excel) totle_sheet = totle[totle_sheetname] down_sheet = down[down_sheetname] # 兩個for循環(huán)遍歷整個excel的單元格內(nèi)容 for i, row in enumerate(down_sheet.iter_rows()): for j, cell in enumerate(row): totle_sheet.cell(row=i + 1, column=j + 1, value=cell.value) totle.save(totle_excel)代碼說明:

文件內(nèi)容是從down_excel的down_sheetname復(fù)制到totle_excel的totle_sheetname

說明:

以上代碼可以將格式以及合并單元格的樣式均復(fù)制到另一張表

注意:

如果你是跨excel文件的復(fù)制且?guī)в泄剑唤ㄗh使用

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。如有錯誤或未考慮完全的地方,望不吝賜教。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 国产成人在线精品 | 日干夜干天天干 | 国产一区在线免费观看 | 国产一区二区三区在线观看视频 | 天天插天天狠天天透 | 亚洲成人偷拍 | 欧美区亚洲区 | 久久精品国产成人av | 91免费看黄 | 伊人网在线视频观看 | ass日本粉嫩pics珍品 | 999精品免费视频 | 精品国产自 | 亚洲在线视频观看 | 日批毛片| 中文字幕免费视频观看 | 色偷偷综合网 | 欧美日本高清 | 99r精品| 国产精品久免费的黄网站 | 色综合免费视频 | 香蕉视频在线观看网站 | 国产在线第一页 | 黄色一级片在线播放 | 91剧场 | 国产精品久久免费视频 | 国产一区二区自拍视频 | 天堂久久久久久 | 国产又粗又猛又黄视频 | 欧美一级全黄 | 亚洲在线 | 四虎网址最新 | 欧美精品一区三区 | 成人一级免费视频 | 亚洲精品卡一卡二 | 国产精品成人一区二区 | 欧美日韩国产在线一区 | 91网站在线免费观看 | 中文字幕综合在线 | 日本视频精品 | 成人做受黄大片 |