7

EPPlus ライブラリを試してみましたが、これに行き詰まっています。単一のセルにテキストをロードする必要がありますが、このテキストにコンマが含まれている場合、使用しているコードはテキストを複数のセルに分割します (右方向に沿って)。テキストをロードするために使用しているコードは次のとおりです。

using (ExcelPackage pck = new ExcelPackage())
{
   //Create the worksheet
   ExcelWorksheet ws = pck.Workbook.Worksheets.Add("MySheet");
   using (ExcelRange range = ws.Cells[1, 1])
   {
      range.LoadFromText("this works");
   }
   using (ExcelRange range = ws.Cells[1, 2])
   {
      range.LoadFromText("this, splits my , text in 3 parts");
   }
}

単一のセルを操作する方法や、テキストを分割しないように LoadFromText メソッドに指示する方法が見つかりません。

4

2 に答える 2

13

を指定することで、二重引用符で囲むことができます。TextQualifier

using (ExcelRange range = ws.Cells[1, 1])
{
   var format = new OfficeOpenXml.ExcelTextFormat();
   format.Delimiter = ',';
   format.TextQualifier = '"';
   format.DataTypes = new[] { eDataTypes.String };
   range.LoadFromText("this, should, work, also, now", format);
}
于 2013-05-03T10:59:13.060 に答える
1

実際に単一のセルを参照してその値を設定し、区切り文字を変更することを避けることができます。

using (ExcelRange range = ws.Cells[1, 1])
{
    range.First().Value = "this, should, work";
}

上記は、参照されるセルが既に作成されていることを前提としています。まだ値が設定されていない場合は、オブジェクトエラーのインスタンスに設定されていないオブジェクト参照が与えられます。したがって、これを回避するには、セルを作成する直前にダミー値を設定できます。

using (ExcelRange range = ws.Cells[1, 1])
{
    range.LoadFromText("-"); // This will create the cell
    range.First().Value = "this, should, work";
}
于 2016-09-18T09:12:08.610 に答える