只使用Python复制XLS的工作表以成为新XLS中的新工作表?

使用下面的Pythontesting代码,我试图将一个Excel( *.xls )文件中的唯一工作表复制到一个工作表的新Excel文件。

input电子表格如下所示:

在这里输入图像描述

 from copy import deepcopy from xlrd import open_workbook from xlutils.copy import copy as copy from xlwt import Workbook rb = open_workbook(r"C:\Temp\test1.xls",formatting_info=True) wb = copy(rb) new_book = Workbook() r_sheet = rb.sheet_by_index(0) sheets = [] w_sheet = deepcopy(wb.get_sheet(0)) w_sheet.set_name("test1") for row_index in range(0, r_sheet.nrows): for col_index in range(0, r_sheet.ncols): cell_value = r_sheet.cell(row_index, col_index).value print cell_value w_sheet.write(row_index, col_index, cell_value) sheets.append(w_sheet) new_book._Workbook__worksheets = sheets new_book.save(r"C:\Temp\test2.xls") 

如果我运行代码,它将显示下面的输出,并使用名为test1的工作表创build新的Excel文件。

 Python 2.7.10 (default, May 23 2015, 09:40:32) [MSC v.1500 32 bit (Intel)] on win32 Type "copyright", "credits" or "license()" for more information. >>> ================================ RESTART ================================ >>> Col1 Col2 Col3 a 1.0 X b 2.0 Y c 3.0 Z >>> 

不幸的是,输出看起来有正确数量的单元格写入,它的所有非数字单元格值都写为#VALUE!

在这里输入图像描述

使用Python 2.7.10,是否有一种简单的方法从一个XLS读取工作表,然后将其作为工作表写入另一个XLS文件?

我不想简单地复制电子表格,然后重新命名工作表中的新工作表,因为一旦我可以得到这个工作,我想复制在每一个电子表格中的每一个工作表成为一个同名的工作表在一个工作表与十几张工作表。

 from xlrd import open_workbook from xlutils.copy import copy # Read the workbook rb = open_workbook("input.xls", formatting_info=True) # Copy into a new workbook wb = copy(rb) # Rename to 'test1' as the original post asked for ws = wb.get_sheet(0) ws.name = 'test1' # Save the new workbook wb.save("output.xls") 

尝试使用pyexcel 。 这将使你的工作变得更容易。

根据您使用其他工作簿中的一张纸制作新工作簿的最终要求,以下是一些帮助代码。

 import pyexcel as pe outputbook = "merged.xls" inputbooks = { "test1.xls" : "Sheet1", "test2.xls" : "Sheet1", "test3.xls" : "Sheet1", } merged_book = None for book, sheet in inputbooks.iteritems(): wb = pe.get_book(file_name=book) if merged_book is None: merged_book = wb[sheet] else: merged_book = merged_book + wb[sheet] merged_book.save_as(outputbook) 

inputbooks是您希望阅读的工作簿与其工作表的字典映射。

您可能需要根据您正在使用的文件types来安装其他插件:

 pip install pyexcel pyexcel-xls 

如果不存在,您可能会看到如下错误:

IOError:找不到适合xls的库