如何写出在openpyxl中以只读方式打开的电子表格
How to write out a spreadsheet opened with readonly in openpyxl
出于性能原因,我在 python 中以只读方式加载电子表格
self.data = load_workbook(filename,read_only=True, data_only=True)
。我希望现在能够把它写出来。有没有办法复制或转出 read_only 工作簿,以便可以将其写成 XLSX?在任何人评论之前,是的,我确实理解“read_only”的概念和定义,但我也知道那里有聪明的人可以找到解决问题的方法。
这是我想出的解决方案。问题是,它花费的时间与在没有设置 read_only 的情况下进行读取所花费的时间大致相同。
def cloneReadOnlyWorksheet(self):
destWB = Workbook()
for sheet in orgWorkbook:
cloneSheet(destWB,sheet)
def cloneSheet(self, wb, ws1):
ws2 = wb.create_sheet(ws1.title)
mr = ws1.max_row
mc = ws1.max_column
for row in range (1, mr + 1):
for column in range (1, mc + 1):
cell = ws1.cell(row,column)
if cell.value != None:
new_cell = ws2.cell(row, column, value=cell.value)
if cell.has_style:
new_cell.font = copy(cell.font)
new_cell.border = copy(cell.border)
new_cell.fill = copy(cell.fill)
new_cell.number_format = copy(cell.number_format)
new_cell.protection = copy(cell.protection)
new_cell.alignment = copy(cell.alignment)
出于性能原因,我在 python 中以只读方式加载电子表格
self.data = load_workbook(filename,read_only=True, data_only=True)
。我希望现在能够把它写出来。有没有办法复制或转出 read_only 工作簿,以便可以将其写成 XLSX?在任何人评论之前,是的,我确实理解“read_only”的概念和定义,但我也知道那里有聪明的人可以找到解决问题的方法。
这是我想出的解决方案。问题是,它花费的时间与在没有设置 read_only 的情况下进行读取所花费的时间大致相同。
def cloneReadOnlyWorksheet(self):
destWB = Workbook()
for sheet in orgWorkbook:
cloneSheet(destWB,sheet)
def cloneSheet(self, wb, ws1):
ws2 = wb.create_sheet(ws1.title)
mr = ws1.max_row
mc = ws1.max_column
for row in range (1, mr + 1):
for column in range (1, mc + 1):
cell = ws1.cell(row,column)
if cell.value != None:
new_cell = ws2.cell(row, column, value=cell.value)
if cell.has_style:
new_cell.font = copy(cell.font)
new_cell.border = copy(cell.border)
new_cell.fill = copy(cell.fill)
new_cell.number_format = copy(cell.number_format)
new_cell.protection = copy(cell.protection)
new_cell.alignment = copy(cell.alignment)