A simple script to create CSV versions of any XLSX files in a given folder.
#The Basics import xlrd import csv import os import re # Create empty variables and hash tables we'll need later Location = {} # Location to output CSV file when all is done Location['input'] = input('Folder: ') Location['output'] = os.path.join(Location['input'],'csv') def csv_from_excel(file): print("Parsing ", file) wb = xlrd.open_workbook(file) for sheet in wb.sheet_names(): print('Exporting Sheet:', sheet) sh = wb.sheet_by_name(sheet) fileout = os.path.splitext(file)[0] + " " + sheet + ".csv" with open(fileout, "w", newline="") as csvfile: wr = csv.writer(csvfile, quoting=csv.QUOTE_ALL) for rownum in range(sh.nrows): wr.writerow(sh.row_values(rownum)) csvfile.close() # runs the csv_from_excel function: for filename in os.listdir(Location['input']): if filename.endswith(".xlsx") or filename.endswith(".XLSX"): newfilename = os.path.splitext(filename)[0] + ".csv" csv_from_excel(str(Location['input'] + "\\" + filename))
NB: This functions combines all sheets within an XLSX into a single CSV file.