Oct-27-2022, 09:37 PM
I want to transfer worksheets in a workbook into individual csv files per worksheet (I am experimenting with 1 worksheet at the moment). I found the following code on the internet, but I am getting errors. I see an empty file called 'file1.csvSheet1.csv'. I expected the file to be file1.csv.
import csv import openpyxl def xls_to_csv(xls_name, csv_name) -> None: wb=openpyxl.load_workbook(xls_name) for sheet in wb.sheetnames: with open(f'{csv_name}{sheet.title()}.csv','w') as csv_file: writer=csv.writer(csv_name) xls_sheet=wb[sheet] maxRow=xls_sheet.max_row+1 maxCol=xls_sheet.max_column+1 headers=(xls_sheet.cell(row=1,column=col).value for col in range(1, maxCol)) writer.writerow(headers) for r in range(2,maxRow): xls_row=(xls_sheet.cell(row=r,column=col).value for col in range(1, maxCol)) writer.writerrow(xls_row) if __name__ == '__main__': import sys import pathlib with pathlib.Path("D:/Power BI & Python/ExcelData3.xlsx") as xls_file: if xls_file.is_file(): xls_to_csv("D:/Power BI & Python/ExcelData3.xlsx","file1.csv")
"D:\Power BI & Python\venv\Scripts\python.exe" "D:/Power BI & Python/Test.py" Traceback (most recent call last): File "D:\Power BI & Python\Test.py", line 26, in <module> xls_to_csv("D:/Power BI & Python/ExcelData3.xlsx","file1.csv") File "D:\Power BI & Python\Test.py", line 9, in xls_to_csv writer=csv.writer(csv_name) TypeError: argument 1 must have a "write" method Process finished with exit code 1