たいてい転がってるサンプルがPython2でキレたので書いた
変換するにはライブラリが必要である。Pythonでエクセルを扱えるメジャーなライブラリは以下
順に見ていく
openpyxl
xlsには対応していない。
Openpyxl is a Python library for reading and writing Excel 2010 xlsx/xlsm/xltx/xltm files.
今回は見送る。
pandas
コード的には一番シンプルである。
import pandas as pd xls_file = pd.read_excel('1.xls', sheet_name = "Sheet1") xls_file.to_csv('MySpreadsheet.csv', index = False)
が、pandas自体がそもそもエクセル用ライブラリであるわけではないので、今回変換したいファイルだと崩れてしまった。
xlrd
今回はこれで成功した
import xlrd import csv def csv_from_excel(): wb = xlrd.open_workbook('1.xls') sheet = wb.sheet_by_index(0) your_csv_file = open('output.csv', 'w', encoding='utf8') wr = csv.writer(your_csv_file, quoting=csv.QUOTE_ALL) for row_index in range(sheet.nrows): row = sheet.row(row_index) for cell in row: wr.writerow(sheet.row_values(row_index)) your_csv_file.close() csv_from_excel()