C#やVB.NETからOffice.Interop.Excelを使って、Excelを操作できる。
ただ操作するにはいくつか注意点があるので、記載。
1.生成したオブジェクトは都度、System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)で開放する。都度でなくてもよいが、使いった回数分全て開放しなければプロセスが残る
2.ピリオドを2つ繋げるような使い方をすると、開放できなくなるので、必ず、オブジェクトを生成してから利用する
例:Excel.Range range = ~;
range.font.ColorIndex = 3; ←開放できない
下記のようにする.
Excel.Range range = ~;
EXCEL.Font rfont = range.Font;
rfont.ColorIndex = 3;
3.Rangeで範囲指定したものをDeleteすると、大量のメモリを消費する上に、遅い。行指定するべき。
例:range.sheet.getrange("A1:Z100")
range.Delete(Type.Missing);
は、ダメ。
削除はできるだけ行単位で行うようにする
range.sheet.getrange("1:100")
range.Delete(Type.Missing);
とりあえず、3つ。ほかは思い出したら追記するかも。
0 件のコメント:
コメントを投稿