2016年4月12日火曜日

ClosedXml その1

久々に投稿。
最近頻繁に使用することになったので、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上でセル結合を解除すると隠された値が現れます。
また、セル結合内の罫線についても同様の動作をします。

各セルの値・罫線を空にしてから結合しましょう。

この問題、フォーラムに投げても返答なし。。。

まだなんかあったはず。。。見つけ次第随時追加します。












0 件のコメント:

コメントを投稿