如何从* .xlsm中提取表单并将其保存为Python中的* .csv?

我有一个* .xlsm文件,其中有20张。 我想保存几张单独的* .csv(格式化损失是好的)。 已经尝试xlrd-xlwt和win32com库,但无法通过。 任何人都可以提供一个代码片段,在Python中进行上述处理? 我有其他的Python依赖关系,所以没有其他语言可以工作。 谢谢

xlrd也应该在xlsm文件上正常工作。 我用一个随机的xlsm文件testing了代码,并且它完美地工作。

import csv import xlrd workbook = xlrd.open_workbook('test.xlsx') for sheet in workbook.sheets(): with open('{}.csv'.format(sheet.name), 'wb') as f: writer = csv.writer(f) writer.writerows(sheet.row_values(row) for row in range(sheet.nrows)) 

如果您有编码问题,请尝试下面的代码:

 import csv import xlrd workbook = xlrd.open_workbook('test.xlsm') for sheet in workbook.sheets(): if sheet.name == "Sheet_name_from_xlsm_file": with open('{}.csv'.format(sheet.name), 'wb') as f: writer = csv.writer(f) for row in range(sheet.nrows): out = [] for cell in sheet.row_values(row): try: out.append(cell.encode('utf8')) except: out.append(cell) writer.writerow(out)