Nick M.
Nick M.

Reputation: 259

Python - Excel information copying

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

Answers (1)

mechanical_meat
mechanical_meat

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

Related Questions