在python中从Excel转换为CSV时排除工作表

问题描述 投票:0回答:1

我有一个excel电子表格,里面有多个工作表。我的python代码将工作表转换为单独的CSV。如果有任何空工作表,我试图排除工作表。

这是我的代码:

def csv_from_excel(excel_file):

    workbook = xlrd.open_workbook(excel_file)
    all_worksheets = workbook.sheet_names()
    for worksheet_name in all_worksheets:
        worksheet = workbook.sheet_by_name(worksheet_name)
        with open('{}.csv'.format(worksheet_name), 'wb') as your_csv_file:
            wr = csv.writer(your_csv_file, quoting=csv.QUOTE_ALL)
            for rownum in xrange(worksheet.nrows):
                wr.writerow([unicode(entry).encode("utf-8") for entry in worksheet.row_values(rownum)])
    print('CSV files has been generated from Excel')

我希望应该跳过空工作表。

我在if worksheet.nrows > 0:之前尝试过for loop,但它也包括空工作表。

python excel csv spreadsheet worksheet
1个回答
2
投票

我制作了一个包含3张纸的小型Excel文件(纸张编号2为空)并尝试以下操作:

import xlrd

workbook = xlrd.open_workbook("TestMap.xlsx")
all_worksheets = workbook.sheet_names()

for worksheet_name in all_worksheets:
    worksheet = workbook.sheet_by_name(worksheet_name)
    if worksheet.nrows > 0:
        print(worksheet_name)

输出是我想要的:

>>> sheet1
sheet3

你确定你的床单真的是空的吗?

© www.soinside.com 2019 - 2024. All rights reserved.