我正在使用OPENXML SDK 2.0来传输电子表格文件。源数据来自数据表,并使用openxml将其写入Spreadsheet。如果数据表的某个列数据中有一个“Treshold%”(此文本上面有选项卡空间)并且写入的内容相同,但是将其写入 excel单元格中的“Treshold%”并删除标签空间。
我使用的代码如下。使用workSheetWriter.PasteText
和workSheetWriter.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单元格中的格式相同?
答案 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.InlineString
和InlineString
类来完成您的需要(保留空间) :
Text