如何写出在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)