OpenXML Spreadsheet-在写入单元格值时保留值之前或之后的空间

时间:2013-05-16 14:13:42

标签: c# openxml openxml-sdk spreadsheetml

我正在使用OPENXML SDK 2.0来传输电子表格文件。源数据来自数据表,并使用openxml将其写入Spreadsheet。如果数据表的某个列数据中有一个“Treshold%”(此文本上面有选项卡空间)并且写入的内容相同,但是将其写入 excel单元格中的“Treshold%”并删除标签空间。

我使用的代码如下。使用workSheetWriter.PasteTextworkSheetWriter.PasteValue方法。

WorksheetWriter workSheetWriter = new WorksheetWriter(spreadSheet, workSheet);

int intValue = 0;
if (strValue.Contains("$"))
{
    strValue = strValue.Replace("$", "");
    strValue = strValue.Replace(",", "");

    workSheetWriter.PasteValue(cellLocation, strValue, CellValues.Number);
}
else if (int.TryParse(strValue, out intValue))
{
    workSheetWriter.PasteValue(cellLocation, strValue, CellValues.Number);
}
else if (string.IsNullOrEmpty(strValue))
{
    workSheetWriter.PasteText(cellLocation, strValue);
}
else
{
    workSheetWriter.PasteText(cellLocation, strValue);
}

请帮助解决这个问题。如何将开头的标签空间(Treshold%)中的值写入excel单元格中的格式相同?

1 个答案:

答案 0 :(得分:5)

  

我正在使用OPENXML SDK 2.0

由于 OpenXML SDK 2.0 中没有workSheetWriter类,我猜您正在使用此库:Simple OOXML

我不使用这个库,但

我认为你不能使用这些方法,因为.PastText.PasteValue方法使用CellValues.String和{{1}来存储文字},这会导致忽略空格:

CellValue

仅使用 OPENXML SDK 2.0 ,我可以使用{ cell.CellValue = new CellValue(value); cell.DataType = new EnumValue<CellValues>(type); } 类型,CellValues.InlineStringInlineString类来完成您的需要(保留空间) :

Text