Reputation: 259
How do I copy the information from the 1st and 2nd columns of the 3rd sheet of an excel document.
I am using xlwt and xlrd as libraries to read and write to excel documents
This is my code:
import xlwt
import xlrd
workbook = xlrd.open_workbook('input.xls')
sheet = workbook.sheet_by_index(2)
data = [sheet.cell_value(row, 0) for row in range(sheet.nrows)]
data = [sheet.cell_value(row, 1) for row in range(sheet.nrows)]
workbook = xlwt.Workbook()
sheet = workbook.add_sheet('test')
for index, value in enumerate(data):
sheet.write(0, index, value)
workbook.save('Commands')
Upvotes: 1
Views: 190
Reputation: 169304
You're overwriting data
. Instead do:
import xlwt
import xlrd
workbook = xlrd.open_workbook('input.xlsx')
sheet = workbook.sheet_by_index(2)
data = []
data.append([sheet.cell_value(row, 0) for row in range(sheet.nrows)])
data.append([sheet.cell_value(row, 1) for row in range(sheet.nrows)])
workbook = xlwt.Workbook()
sheet = workbook.add_sheet('test')
for colidx, col in enumerate(data):
for rowidx, row in enumerate(col):
sheet.write(rowidx, colidx, row)
workbook.save('Commands.xls')
Edit: To also write to txt file use:
with open('output.txt','wb') as fou:
writer = csv.writer(fou)
for row in data:
writer.writerow(row)
Upvotes: 1