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 回答