簡體   English   中英

在Python中從Excel轉換為CSV時排除工作表

[英]Exclude worksheet when converting from Excel to CSV in python

我有一個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之前,但它也包括空的工作表。

我制作了一個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

您確定您的床單確實是空的嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM