在 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')
我希望应该跳过空白工作表。
我在 for loop
之前尝试了 if worksheet.nrows > 0:
,但它也包括空工作表。
我用 3 sheet 制作了一个很小的 Excel 文件(sheet 数字 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
您确定您的 sheet 真的是空的吗?
我有一个 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')
我希望应该跳过空白工作表。
我在 for loop
之前尝试了 if worksheet.nrows > 0:
,但它也包括空工作表。
我用 3 sheet 制作了一个很小的 Excel 文件(sheet 数字 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
您确定您的 sheet 真的是空的吗?