PythonでExcelシートをCSVへ出力する

OfficeScriptをさわってみた流れから、VBAが使えない環境でExcelシートをCSVへ出力するには、と思ってPADでやってみたりPython使ってみたりいろいろ試しました。Pythonではこんな感じで動いたというメモ。
関連記事
openpyxlのインストールが必要なのでこちらも参照ください。
参考記事
ありがとうございます!
コード
C:\Sample\test.xlsxのToCsvSheetシートを、C:\Sample\test.csvというCSVファイルに出力するコードです。5~7行目をお好みで。
import sys # システムパラメータのライブラリ( sys.exit() にて利用 )
import openpyxl # openpyxlライブラリのインポート
# ファイルの入力、出力先フォルダ
exfileName = r'C:\Sample\test.xlsx' # Excelパスをraw文字列で指定
sheetName = 'ToCsvSheet' # CSVにしたいシート名
csvfileName = r'C:\Sample\test.csv' # 出力するCSVのパスをraw文字列で指定
# ¥を置換
exfileName = exfileName.replace('\\', '/')
csvfileName = csvfileName.replace('\\', '/')
# ブックの読み込み
wb = openpyxl.load_workbook(exfileName)
ws = wb[sheetName] # シート指定
# A1セルが空欄なら終了
if ws['A1'].value is None:
sys.exit()
# CSV用のテキストを作成
txt = "" # 初期値
for row in range(1, ws.max_row + 1): # 1行目から最終行まで繰り返し
for col in range(1, ws.max_column + 1): # 1列目から最終列まで繰り返し
if col > 1: # 2列目以降だったら
txt += "," # 区切り文字(カンマ)
v = ws.cell(row, col).value # セルの内容を取得
if (v is not None): # 値があったら
txt += str(v) # 文字列で追記
txt += "\n" # 改行
print(txt) # 確認用に出力
# ブックの終了
wb.close()
# CSV出力
csv = open(csvfileName, "w")
csv.write(txt)
csv.close()
.max_rowと.max_columnていう関数がスマートすぎてびびる。えっっっこんなにカンタンに最後の行列とってこれるの……! Excel付属の言語より超絶オシャレ(?)なんですけど!!!
同じ結果を求めるのでもツールが違うとまたおもしろいですね。






コメントは承認制ですので、反映までしばらくお待ち下さい。(稀にスパムの誤判定にて届かないこともあるようですので、必要な際はお問い合わせからお願い致します。)
YouTubeでQ&Aコンテンツを企画しています
運営しているYouTubeチャンネルで、ご相談やご質問を募集しています。動画のコメントやお問い合わせページからお気軽にご相談をお寄せください。