在写单元格值时保留值前后的空间
本文关键字:空间 单元格 保留 | 更新日期: 2023-09-27 18:14:09
我使用OPENXML SDK 2.0来流式传输电子表格文件。源数据来自数据表,并使用openxml将其写入电子表格。如果有一个数据表的列数据有" threshold %"(这个文本在它前面有制表符空间),并且同样被写入excel,但它正在写入" threshold %"在excel单元格中并删除制表符空间。
我使用的代码如下。使用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);
}
请帮忙。如何将tab空格开头的值(threshold %)写入excel单元格中?
我正在使用OPENXML SDK 2.0
因为没有workSheetWriter
类在OpenXML SDK 2.0,我猜你正在使用这个库:简单的OOXML
我不使用这个库,但是,
- 从代码我看到在CodePlex上的browserCode, 根据我的测试,
- 和根据这个SO问题CellValues之间的区别是什么。InlineString和CellValues。字符串在OpenXML?
我认为你不能通过使用这些方法,因为.PastText
和.PasteValue
方法是通过使用CellValues.String
和CellValue
来存储文本的,这导致了空间被忽略:
{
cell.CellValue = new CellValue(value);
cell.DataType = new EnumValue<CellValues>(type);
}
通过使用OPENXML SDK 2.0仅,我能够完成你想要的(保留空间)通过使用CellValues.InlineString
类型,InlineString
和Text
类:
Text text1 = new Text
{
Text = " Text with space at beginning",
Space = SpaceProcessingModeValues.Preserve
};
cell.InlineString = new InlineString(text1);
cell.DataType = new EnumValue<CellValues>(CellValues.InlineString);