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.
