Python程序仅复制excel文件中的特定行复制所有行
我正在尝试使用python将特定行从一个excel文件复制到另一个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
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吗