Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python xlrd/xlwt使用两个不同工作簿中的工作表创建新工作簿,保留格式_Python_Excel_Xlrd_Xlwt_Xlutils - Fatal编程技术网

python xlrd/xlwt使用两个不同工作簿中的工作表创建新工作簿,保留格式

python xlrd/xlwt使用两个不同工作簿中的工作表创建新工作簿,保留格式,python,excel,xlrd,xlwt,xlutils,Python,Excel,Xlrd,Xlwt,Xlutils,首先让我解释一下我的术语。Excel工作簿包含工作表。例如,新Excel工作簿默认包含3张工作表 现在,使用xlrd、xlwt和xlutils,我的目的是输出一个新工作簿(比如:file3),其中输入file1中的3张工作表和file2中的1张工作表。这一切都尽可能地保留格式。我正在使用以下代码(文件1、文件2您必须自己手动创建,只需用数字和文本填充即可): 问题是,当我打开“file3.xls”时,Excel给出了一个错误:“文件错误:数据可能已丢失。”单击“确定”并检查文件,我看到了很多值!

首先让我解释一下我的术语。Excel工作簿包含工作表。例如,新Excel工作簿默认包含3张工作表

现在,使用xlrd、xlwt和xlutils,我的目的是输出一个新工作簿(比如:file3),其中输入file1中的3张工作表和file2中的1张工作表。这一切都尽可能地保留格式。我正在使用以下代码(文件1、文件2您必须自己手动创建,只需用数字和文本填充即可):

问题是,当我打开“file3.xls”时,Excel给出了一个错误:“文件错误:数据可能已丢失。”单击“确定”并检查文件,我看到了很多值!错误、列宽等已保留,但字体和颜色未保留。值得注意的是,数字被完美地复制了,但文字却没有。有人知道出了什么问题吗?

可能是重复的
import os
import xlrd
import xlwt
from xlutils.copy import copy as xlutils_copy
from copy import deepcopy as deep_copy

new_workbook = xlwt.Workbook()

with xlrd.open_workbook("file1.xls", formatting_info=True) as rb1:
    wb1 = xlutils_copy(rb1)

    allSheets = []
    allSheets.append(wb1.get_sheet(0))
    allSheets.append(wb1.get_sheet(1))
    allSheets.append(wb1.get_sheet(2))
    extra = deep_copy(wb1.get_sheet(1))
    allSheets.append(extra)
    allSheets[-1].name = 'extra sheet file1'

    with xlrd.open_workbook("file2.xls", formatting_info=True) as rb2:
        wb2 = xlutils_copy(rb2)
        extra2 = deep_copy(wb2.get_sheet(0))
        allSheets.append(extra2)
        allSheets[-1].name = 'extra sheet file2'

    new_workbook._Workbook__worksheets = allSheets

    outputFile = "file3.xls"
    new_workbook.save(outputFile)
    os.startfile(outputFile)