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

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

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

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

C#

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

Q&A

解決済

2回答

5066閲覧

closedxmlでファイルの読み込み及び保存の速度改善

kisekihd

総合スコア2

ClosedXML

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

C#

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

0グッド

1クリップ

投稿2023/01/12 08:16

前提

言語:c#
closedxmlでテンプレートファイルを読み込み、DBのデータを書き込みファイルを保存する。
テンプレートファイルのサイズが5MBほどでマクロが入っているため、拡張子がxlsm。

実現したいこと

ファイルの読み込み、保存の速度をそれぞれ2秒くらいで終了させたい。

発生している問題・エラーメッセージ

現状ファイルの読み込み、ファイルの保存にそれぞれ15秒ほどかかっている。

該当のソースコード

c#

1// 開くだけで15秒 2var wb = new XLWorkbook(テンプレートファイルのパス); 3 4//wbへの書き込み処理(1秒もかからず完了。) 5 6// 保存にも15秒 7wb.SaveAs(ファイル保存先のパス); 8

試したこと

ファイルを開く際の引数にLoadOptionsを追加し、
EventTrackingをDisabled、RecalculateAllFormulasをfalseにしたが、変化なし。

ファイルを保存する際の引数にSaveOptionsを追加し、
SaveOptionsのプロパティを全てをfalseにしたが、変化なし。

テンプレートファイルの中身を一部削除し、ファイルサイズを500KBまで削減した場合
読み込み、保存にそれぞれ1秒かからず終了しました。
そのため、ファイルサイズが原因だとは分かったのですが、テンプレートファイルの中身を削除して
ファイルサイズを少なくすることができません。

何か解決案などがあれば、ご教示ください。

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

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

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

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

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

kikukiku

2023/01/12 08:37

ファイルサイズを少なくすることができず、closedxmlを使いたいというと、無理ではないかと思います。 closedxmlをやめて、テンプレートファイルを書き換えるExcelVBAを用意する。 ExcelVBAは起動すると、自動的に書き換える内容が記載されたファイルを読み込み テンプレートファイルを書き換える。 C#アプリからは、書き換える内容が記載されたファイルの生成と ExcelVBAを起動することだけを行う。 これなら早くなるのではないかと考えます。
kisekihd

2023/01/16 00:25

やっぱりファイルサイズを小さくしないと無理ですよね。 ありがとうございます。 こちらをベストアンサーにしたいので、お手数ですが回答に転記頂ければと思います。
kikukiku

2023/01/16 00:36

面倒なので自己解決で閉じてもらえると助かります。
guest

回答2

0

自己解決

ファイルサイズを少なくすることができず、closedxmlを使いたいというと、無理ではないかと思います。
closedxmlをやめて、テンプレートファイルを書き換えるExcelVBAを用意する。
ExcelVBAは起動すると、自動的に書き換える内容が記載されたファイルを読み込み
テンプレートファイルを書き換える。
C#アプリからは、書き換える内容が記載されたファイルの生成と
ExcelVBAを起動することだけを行う。

投稿2023/01/16 09:23

kisekihd

総合スコア2

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

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

0

ClosedXML is a fast and efficient library for loading and saving Microsoft Excel files. With ClosedXML, developers can quickly load, save, and manipulate large spreadsheets without having to worry about performance impacts. Furthermore, the library provides an intuitive interface that makes it easy to work with complex data sets in a streamlined manner. In addition, ClosedXML is optimized for speed, allowing developers to quickly and effortlessly manipulate large spreadsheets with ease. This makes it an ideal solution for data-heavy applications that require frequent loading and saving of files. With its efficient library design, ClosedXML ensures that users can work faster and more efficiently than ever before. By leveraging the power of ClosedXML, developers can create powerful applications that can seamlessly handle large data sets and deliver exceptional performance in a fraction of the time. With its simple yet powerful API, ClosedXML is designed to provide an intuitive, cohesive experience for developers and end-users alike. Ultimately, this library provides an invaluable tool for creating efficient, reliable applications with unparalleled speed and ease. Its scalability and performance make ClosedXML a great choice for any project. By leveraging the power of ClosedXML, developers can create powerful applications that are both reliable and efficient. With its simple yet powerful API, ClosedXML provides an intuitive experience while allowing users to quickly load and save files with unprecedented speed.

投稿2023/01/12 09:46

alicebrown2141

総合スコア2

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問