Python程序仅复制excel文件中的特定行复制所有行

Python程序仅复制excel文件中的特定行复制所有行,python,excel,xlrd,xlwt,Python,Excel,Xlrd,Xlwt,我正在尝试使用python将特定行从一个excel文件复制到另一个excel文件。临时列表中有我只想复制的行号。但它似乎正在复制所有行。我做错了什么 import xlrd book = xlrd.open_workbook("file.xlsx") sheet = book.sheet_by_index(0) temp_list = [1,4,5,6,7,8,9,10,15,19,26] book1 = copy(book) sheet1=book1.get_sheet(0) totalcol

我正在尝试使用python将特定行从一个excel文件复制到另一个excel文件。临时列表中有我只想复制的行号。但它似乎正在复制所有行。我做错了什么

import xlrd
book = xlrd.open_workbook("file.xlsx")
sheet = book.sheet_by_index(0)
temp_list = [1,4,5,6,7,8,9,10,15,19,26]
book1 = copy(book)
sheet1=book1.get_sheet(0)
totalcols=sheet.ncols
k=0

for j in temp_list: #for rows
    for i in range(0,totalcols):
        try:
            value=sheet.cell_value(j,i)

            sheet1.write(k,i,value)
        except IndexError:
            continue
    k=k+1
book1.save("Gibberish_Removed.xls")

问题似乎出在

 book1 = copy(book)
 sheet1 = book1.get_sheet(0)
然后

sheet1.write(chosen_values) #chosen value is value at index, (k,i)
这只会将所选值覆盖为k,i,但由于您从book中复制了sheet1,所以它也会有其他行。
你需要从一张空白纸开始。我认为你应该使用xlwt软件包来写作

import xlrd
from xlwt import Workbook

book = xlrd.open_workbook("file.xlsx")
sheet = book.sheet_by_index(0)
temp_list = [1, 4, 5, 6, 7, 8, 9, 10, 15, 19, 26]
book1 = Workbook()
sheet1 = book1.add_sheet('test', cell_overwrite_ok=True)
total_cols = sheet.ncols
k = 0
for j in temp_list: #for rows
    for i in range(0, total_cols):
        value = sheet.cell_value(j-1,i)
        sheet1.write(k, i, value)
    k += 1
book1.save("Gibberish_Removed.xls")

你把这本书复制到第1册。你不想创建一本新的空书而不是经常调用copybook吗