EPPlusを使用してセルを結合しますか?


93

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という名前のプロパティがあります。たぶんそれはセルをマージするだろうと思ったが、そうではない。

誰でもこれを行う方法を知っていますか?

回答:


164

次のように使用する必要があります。

ws.Cells["A1:C1"].Merge = true;

の代わりに:

using (ExcelRange rng = ws.Cells["A1:C1"])
{
    bool merge = rng.Merge;
}

動的パラメーターを渡してvb.netのセルをマージする方法
Hari

私が反対のことをしたいなら、これはうまくいくでしょうか?セルの結合を解除します。
NikosV 2018

条件に基づいて列をマージするにはどうすればよいですか?
Prashant Pimpale 2018年

1
@PrashantPimpale質問が理解できません。マージする範囲のセルは隣接している必要があることに注意してください。
Carles Company、

2
ここに追加情報として。マージ後、最も左上のセル値のみが保持されます(残りのセル値は無視されます)
curiousBoy

76

セルを動的にマージしたい場合は、次のものも使用できます。

worksheet.Cells[FromRow, FromColumn, ToRow, ToColumn].Merge = true;

これらの変数はすべて整数です。


7

拡張メソッドを作成できます。

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;
}

これは、相互運用機能を使用する場合と同じように使用できます。

range.Merge();
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.