最近頻繁に使用することになったので、ClosedXMLについてのメモ。
使い方はググればすぐ出てくるので要点だけ。
ClosedXML
概要
- http://closedxml.codeplex.com/
- C#でExcelファイルを操作するライブラリ。
- Excelファイルは2007以降(.xlsx)の形式に限る(.xlsmも使えたはず)
- Excel(Office)のインストール不要。内部ではOpenXMLがExcelを操作している。
- MITライセンス
- 開発スピードはちょーゆっくり。フォーラムに質問投げても返信無し。。。
使い方
ググると色々出るから調べてね(はぁと
見つからない場合は公式ドキュメント
を見てみましょう。
使い方の注意点
これが本題。
メモリリークを起こすことがある
クラス:XLWorkbook, XLWorksheet, XLRangeのDisposeを忘れるとメモリリークすることあります。必ずusingしましょう。
上記以外にも該当するクラスがあるはずなので、何かしらクラスを使う際はIDisposableを継承しているかどうか確認しましょう。
セル結合すると隠れた値が保持される
結合されるセル(左上以外のセル)に値があると、値を保持したままセル結合されます。
ClosedXMLのCell.GetValue()で値が読めるけれども、Excel上で結合セルを見ても何も表示していない状態になります。
そしてExcel上でセル結合を解除すると隠された値が現れます。
また、セル結合内の罫線についても同様の動作をします。
そしてExcel上でセル結合を解除すると隠された値が現れます。
また、セル結合内の罫線についても同様の動作をします。
各セルの値・罫線を空にしてから結合しましょう。
この問題、フォーラムに投げても返答なし。。。
まだなんかあったはず。。。見つけ次第随時追加します。
0 件のコメント:
コメントを投稿