はじめに
Pythonではxlsxwriteというライブラリがありますがこれを使うと自動でエクセルの読み書きが出来ます。今回はxlsxwriteを使っている時に遭遇したエラーにについてです。
エラーの原因と対処法
エラー
まず発生したエラーですが、
xlsxwriter.exceptions.InvalidWorksheetName: Invalid Excel character '[]:*?/\'
というものです。
日本語で訳すと
「xlsxwriterの例外:向こうなワークシート名: ‘[]:*?/\’はExcelで無効な文字です」
となります。
原因とサンプルソース
原因
このエラーは、xlsxwriter
ライブラリを使用してExcelのワークシート名を設定しようとしたときに、無効な文字がワークシート名に含まれている時に発生します。
具体的に、Excelのワークシート名には、次の文字は含めることができません: [
, ]
, :
, *
, ?
, /
, \
.
対策としてはシート名に上記の文字を含めない事です。
エラーが発生するソースコード
例としてエラーが発生するソースコードをみます
import xlsxwriter
# 新しいExcelファイルを作成
workbook = xlsxwriter.Workbook('test.xlsx')
# 無効な文字を含むワークシートを追加
worksheet = workbook.add_worksheet("Invalid?Name")
# Excelファイルを閉じる
workbook.close()
これを実行すると7行目でエラーが発生し、
Traceback (most recent call last):
・
・
(省略)
・
・
raise InvalidWorksheetName(
xlsxwriter.exceptions.InvalidWorksheetName: Invalid Excel character '[]:*?/\' in sheetname 'Invalid?Name'.
となります。
修正したソースコード
次はエラーを修正したソースコードになります。
import xlsxwriter
# 新しいExcelファイルを作成
workbook = xlsxwriter.Workbook('test.xlsx')
# 無効な文字を含まないワークシートを追加
worksheet = workbook.add_worksheet("ValidName")
# Excelファイルを閉じる
workbook.close()
これを実行すると
ValidNameというシート名のtest.xlsxというエクセルファイルが作成されます。
さいごに
今回はxlsxwriterの作成時に発生するエラーについてでした。
この記事がお役に立ったのなら嬉しいです。
最後までお読みいただきありがとうございます。