使用下面的Python測試代碼我試圖將一個Excel(*.xls
)文件中的唯一工作表複製到一個帶有一個工作表的新Excel文件中。僅使用Python複製XLS的工作表以成爲新XLS中的新工作表?
輸入電子表格的樣子:
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")
如果我運行的代碼,它顯示下面的輸出中,並創建新的Excel與工作表名爲test1文件。
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文件工作表中簡單的方法?
我不想簡單地複製電子表格,然後重新命名新工作表中的工作表,因爲一旦我可以得到這個工作,我想複製每一個電子表格中的唯一工作表,成爲一個工作表用十幾張工作表在一個數據庫中輸入姓名。
嘗試用'.sheet_by_index(0)'替換'.get_sheet(0)'。 – Giordano