HOME >> Tips >> Microsoft.NET

Spreadsheet Gear で Excel 出力時に印刷タイトル行を指定するとファイルが壊れる

2016/6/10
文書番号:20511



.NET アプリケーションでサードパティの「Spreadsheet Gear」を使用してExcel 出力を行ったのですが、あるプログラムだけうまくExcelファイルを作成できない問題が発生しました。

Excel ファイル自体は生成されるのですが、そのExcel ファイルを開くと以下のようなエラーが発生します。
===========================================================
'ファイル名'の一部の内容に問題が見つかりました。可能な限り内容を回復しますか?ブックの発行元が信頼できる場合は「はい」をクリックしてください。
===========================================================

クリックで拡大


「はい」をクリックして開くと修復ダイアログが表示されます。
「閉じる」ボタンでダイアログを閉じるとExcel ファイルが開きます。

クリックで拡大


内容を確認すると特にデータが失われているわけではなさそうですが、ファイルを作成するたびにこれが表示されては困ります。

【対応方法】

  1. 印刷タイトル行(複数ページに渡るとき、毎ページに印刷するためのヘッダの設定)を設定するとこのエラーが表示されるようになったのですが、同じようなことをしている他のプログラムでは問題ありませんでした。
    何本もあるうちの2本だけこの現象が発生します。

    この行をコメントにするとExcelファイルを開くときにエラーは発生しませんが、設定できないのは困ります。
    
    '印刷ヘッダを設定
    sheet.PageSetup.PrintTitleRows = "$1:$10"
    

  2. 印刷ヘッダの設定はこの1行しか書いていないので問題ないと思っていたのですが、他にも要因がありました。

    Excel 出力で設定していたシート名に全角の()を使っていたのですが、それがよくなかったようです。

    といっても普通にExcelでシート名に括弧を入れて印刷タイトル行を設定しても問題ないのでツールの問題かなと思うのですが。。。

    以下は例です。シート名から()を除くと問題なくなりました。
    
    'シート名を設定
    sheet.Name = "シート名(01)"