如何使用EPPlus在单个Excel单元格中加载包含逗号的文本

时间:2013-05-03 10:39:15

标签: .net epplus

我正在尝试EPPlus library并且我对此感到困惑:我必须在单个单元格中加载文本,但是当此文本包含逗号时,我正在使用的代码分割我的文本沿着多个单元格(沿着正确的方向)。 这是我用来加载文本的代码:

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方法不拆分文本的方法。

2 个答案:

答案 0 :(得分:7)

您可以通过指定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);
}

答案 1 :(得分:0)

您实际上可以引用单个单元格并设置其值,并避免修改分隔符。

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

以上假设已经创建了引用的单元格。如果尚未将其设置为某个值,则会将 Object引用设置为未设置为对象错误的实例。因此,为避免这种情况,您可以在之前设置虚拟值,只是为了创建单元格。

using (ExcelRange range = ws.Cells[1, 1])
{
    range.LoadFromText("-"); // This will create the cell
    range.First().Value = "this, should, work";
}