ASP.NETでエクセル操作 その4
列幅、行の高さの指定
/// <summary>
/// 列幅を設定します
/// </summary>
/// <param name="colAddress">A:Aなど列のの範囲</param>
/// <param name="colWidth">列の幅</param>
private void _setColumnsWidth(string colAddress, double colWidth)
{
Excel.Range columns = (Excel.Range)this._sheet.Columns;
Excel.Range col = (Excel.Range)columns.get_Item(colAddress, Missing.Value);
col.ColumnWidth = colWidth;
Marshal.FinalReleaseComObject(col);
Marshal.FinalReleaseComObject(columns);
}
/// <summary>
/// 行の高さを設定します
/// </summary>
/// <param name="rowAddress">1:1など行の範囲</param>
/// <param name="rowHeight">行の高さ</param>
private void _setRowHeight(string rowAddress, double rowHeight)
{
Excel.Range rows = (Excel.Range)this._sheet.Rows;
Excel.Range row = (Excel.Range)rows.get_Item(rowAddress, Missing.Value);
row.RowHeight = rowHeight;
Marshal.FinalReleaseComObject(row);
Marshal.FinalReleaseComObject(rows);
}
前述してきたようにエクセルのオブジェクトを参照するときは、変数を宣言して解放する必要があります。行オブジェクトや列オブジェクト、罫線、シェイプオを操作するときはコレクションに注視する必要があります。
罫線の例
Excel.Borders borders = range.Borders;
Excel.Border border = borders[Excel.XlBordersIndex.xlEdgeBottom];
border.Weight = Excel.XlBorderWeight.xlThin;
Marshal.FinalReleaseComObject(border);
Marshal.FinalReleaseComObject(borders);
Marshal.FinalReleaseComObject(range);
オブジェクトにアクセスするときは、局所的に使用するように心がけましょう。
« ASP.NETでエクセル操作 その3 | トップページ | C# Flash »
「03 web」カテゴリの記事
- ASP.NETでエクセル操作 その4(2008.08.18)
- ASP.NETでエクセル操作 その3(2008.08.15)
- ASP.NETでエクセル操作 その2(2008.08.14)
- ASP.NETでエクセル操作 その1(2008.08.13)
- ASP.NET AJAX AutoCompleteコントロール(2008.05.01)
コメント