I want to write a Python script that reads in an Excel spreadsheet and saves some of its worksheets as CSV files.
How can I do this?
I have found third-party modules for reading and writing Excel files from Python, but as far as I can tell, they can only save files in Excel (i.e. *.xls) format. If I'm wrong here, some example code showing how to do what I'm trying to do with these modules would be appreciated.
I also came across one solution that I can't quite understand, but seems to be Windows-specific, and therefore would not help me anyway, since I want to do this in Unix. At any rate, it's not clear to me that this solution can be extended to do what I want to do, even under Windows.
The most basic examples using the two libraries described line by line:
import xlrd
import csv
with xlrd.open_workbook('a_file.xls') as wb:
sh = wb.sheet_by_index(0) # or wb.sheet_by_name('name_of_the_sheet_here')
with open('a_file.csv', 'wb') as f: # open('a_file.csv', 'w', newline="") for python 3
c = csv.writer(f)
for r in range(sh.nrows):
c.writerow(sh.row_values(r))
import openpyxl
import csv
wb = openpyxl.load_workbook('test.xlsx')
sh = wb.active
with open('test.csv', 'wb') as f: # open('test.csv', 'w', newline="") for python 3
c = csv.writer(f)
for r in sh.rows:
c.writerow([cell.value for cell in r])