我目前正在開發一個小程式,該程式采用包含大量行(數十萬行)的作業表,過濾掉單個列中的特定值,然后將過濾后的視圖輸出為僅包含過濾后視圖條目的新作業表. 我不確定是否有更有效的方法來解決這個問題(而且我希望在處理大量行時更有效率)。
到目前為止,我已經設法復制了具有指定值的行,但是我丟失了應用于原始作業表的所有格式。
我正在使用 openpyxl,但不確定如何保持格式。
import openpyxl as opxl
book = opxl.load_workbook('Test.xlsx', read_only=True)
book2 = opxl.load_workbook('new_test.xlsx')
sheet = book.worksheets[2]
sheet2 = book2.worksheets[0]
for row in sheet.iter_rows():
if row[4].value == 'TESTY':
sheet2.append((cell.value for cell in row))
elif row[4].value == 'TESTX':
sheet2.append((cell.value for cell in row))
book2.save("Test(edited).xlsx")
uj5u.com熱心網友回復:
這樣的事情應該做你的問題:
import openpyxl as opxl
book = opxl.load_workbook('Test.xlsx', read_only=True)
book2 = opxl.load_workbook('new_test.xlsx')
sheet = book.worksheets[2]
sheet2 = book2.worksheets[0]
for row in sheet.iter_rows():
if row[4].value in ('TESTY', 'TESTX'):
sheet2.append((cell.value for cell in row))
for column, cell in enumerate(row):
dst = sheet2.cell(sheet2.max_row, column 1)
dst.font = cell.font
if cell.fill != None: dst.fill = cell.fill
dst.border = cell.border
dst.alignment = cell.alignment
if cell.number_format != None: dst.number_format = cell.number_format
if cell.value != None: dst.protection = cell.protection
book2.save("Test(edited).xlsx")
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/456770.html