EPPlusライブラリを使用してExcelファイルの読み取り/書き込みをしています: http://epplus.codeplex.com/
私は文書を書くときにいくつかのセルを単純にマージしようとしています:
using (ExcelPackage pck = new ExcelPackage())
{
//Create the worksheet
ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Demo");
//Format the header for column 1-3
using (ExcelRange rng = ws.Cells["A1:C1"])
{
bool merge = rng.Merge;
}
}
単にtrueまたはfalseを返すMergeという名前のプロパティがあります。多分それはセルをマージすると思いましたが、そうではありません。
誰もこれを行う方法を知っていますか?
次のように使用する必要があります。
ws.Cells["A1:C1"].Merge = true;
の代わりに:
using (ExcelRange rng = ws.Cells["A1:C1"])
{
bool merge = rng.Merge;
}
セルを動的に結合する場合は、次も使用できます。
worksheet.Cells[FromRow, FromColumn, ToRow, ToColumn].Merge = true;
これらの変数はすべて整数です。
拡張メソッドを作成できます:
public static void Merge(this ExcelRangeBase range)
{
ExcelCellAddress start = range.Start;
ExcelCellAddress end = range.End;
range.Worksheet.Cells[start.Row, start.Column, end.Row, end.Column].Merge = true;
}
Interopを使用する場合と同様に、これを使用できます。
range.Merge();