首页 > 解决方案 > 我想从 xlsx 中提取 10 张表并将所有 10 张表导出为 python 中的 csv 格式

问题描述

我能够从 xlsx 文件中提取工作表并将这些工作表转换为 csv 格式。但是,如果我有很多张可以说 40 张,那么我期待一种更智能的方法来提取这些张。下面是我工作的代码。将 pandas 导入为 pd 将 numpy 导入为 np

##Importing the Excel file
excelfile=pd.ExcelFile('single.xlsx')
# Reading all the individual sheet
sheet1=excelfile.parse('Sheet1')
sheet2=excelfile.parse('Sheet2')
sheet3=excelfile.parse('Sheet3')
sheet4=excelfile.parse('Sheet4')
sheet5=excelfile.parse('Sheet5')
sheet6=excelfile.parse('Sheet6')
sheet7=excelfile.parse('Sheet7')
sheet8=excelfile.parse('Sheet8')
sheet9=excelfile.parse('Sheet9')
sheet10=excelfile.parse('Sheet10')
#print(sheet2.head())

#exporting all the individual xlsx sheet to csv
sheet1.to_csv('sheet1.csv')
sheet2.to_csv('sheet2.csv')
sheet3.to_csv('sheet3.csv')
sheet4.to_csv('sheet4.csv')
sheet5.to_csv('sheet5.csv')
sheet6.to_csv('sheet6.csv')
sheet7.to_csv('sheet7.csv')
sheet8.to_csv('sheet8.csv')
sheet9.to_csv('sheet9.csv')
sheet10.to_csv('sheet10.csv')

标签: python

解决方案


只需循环 sheet_names 并即时生成您的 CSV 名称:

excelfile = pd.ExcelFile('single.xlsx')
for i, name in enumerate(excelfile.sheet_names):
    sheet = excelfile.parse(name)
    csv_name = f'sheet_{i:02}.csv'
    sheet.to_csv(csv_name)

推荐阅读