質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
ClosedXML

ClosedXMLは、Excel形式ファイル(.xlsx, .xlsm)の操作や読み書きのための.NETライブラリです。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

1回答

3337閲覧

ClosedXMLによる印刷タイトルの設定

centerman

総合スコア10

ClosedXML

ClosedXMLは、Excel形式ファイル(.xlsx, .xlsm)の操作や読み書きのための.NETライブラリです。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2022/07/11 08:58

編集2022/07/11 10:03

VisualStudio 2022
Windows Form
.NET Framework4.7

使用ライブラリ:CloseXML

テンプレートとなるxlsxファイルを使い
中身を記述後、印刷範囲を設定したいのですが

下記コードを実行すると、印刷タイトルの設定が消えてしまうようです。

ClosedXMLから改めて印刷タイトルを設定したいのですが、やり方をご存知の方がおられましたらご教示頂けると幸いです。
もしくは、印刷タイトルの設定は変更されないようにする方法でも可です。

可能であれば、ClosedXMLにて実現できるのが理想的ですが
難しい場合、別のライブラリの使用などで実現可能でしたら、ご教示頂ければ幸いです。

イメージ説明

コード実行前のテンプレファイル(temp.xlsx)の印刷タイトル設定ウィンドウ
イメージ説明

C#

1 2string temppath = @".\temp.xlsx"; 3string outpath = @".\output.xlsx"; 4 5using (var wb = new XLWorkbook(temppath)) 6 { 7 var sh = wb.Worksheets.First(); //1つ目のシート 8 9 //中身を記入 10 11 //印刷範囲を設定する 12 sh.PageSetup.PrintAreas.Add(1, 1, 80, 11); 13 14 //別名で保存 15 wb.SaveAs(Outpath); 16 }

コード実行後のアウトプットファイル(output.xlsx)の印刷タイトル設定ウィンドウ
イメージ説明
印刷タイトルの設定が消えてしまっております

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

centerman

2022/07/12 10:41

すみません。自己解決してしまったので、NPOI含む、別のライブラリについては、参考にさせて頂きます。
guest

回答1

0

自己解決

失礼いたしました。
ClosedXMLにて実装可能でした。

PrintTitleとかそういったワードでばかり検索していたのですが
改めてwikiを見ると該当する設定項目がありました。

https://github.com/ClosedXML/ClosedXML/wiki/Sheet-Tab

C#

1sh.PageSetup.SetRowsToRepeatAtTop(1, 9);

といった形です。
自分の調べた限りだと、Spire.xmlというライブラリでも実装できました。

Spire.xmlというライブラリを使用する場合

C#

1 Workbook workbook = new Workbook(); 2 workbook.LoadFromFile(outpath); 3 Worksheet sh = workbook.Worksheets[0]; 4 5 sheet.PageSetup.PrintTitleColumns = "$1:$9"; 6 workbook.SaveToFile(outpath);

といった形で実装できました。

ありがとうございました。

投稿2022/07/12 10:45

編集2022/07/12 10:46
centerman

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問