gpt4 book ai didi

c# - 使用 C# 和 OpenXML 在 xlsx 文件中写入时,Excel 单元格文本被修剪

转载 作者:行者123 更新时间:2023-12-04 02:14:43 24 4
gpt4 key购买 nike

在 excel 文件中写入时,单元格中的文本在写入后会被修剪。

例如:
假设我正在尝试编写:"\r\nThis text starts with a new line "我希望当我打开单元格的 xlsx 文件时以空行开头,但我得到的是 "This text starts with a new line"

这只会发生在开头和结尾的空白处,基本上会被修剪掉。

我试过像这样设置单元格格式,但它似乎不起作用:

new CellFormat()
{
ApplyAlignment = true,
Alignment = new Alignment
{
WrapText = new BooleanValue(false)
}
}

最佳答案

问题是底层格式是 XML。除非您将空格标记为保留,否则将忽略值开头或结尾的任何空格。

为此,您需要将 Space 属性设置为 SpaceProcessingModeValues.Preserve ,例如:

Cell cell = new Cell() { CellReference = "A1" };
CellValue value = new CellValue("\r\nThis text starts with a new line");
value.Space = SpaceProcessingModeValues.Preserve;
cell.CellValue = value;
cell.DataType = new EnumValue<CellValues>(CellValues.String);

这会生成如下所示的 XML:

<x:c r="A1" t="str">
<x:v xml:space="preserve">
This text starts with a new line</x:v>
</x:c>

xml:space="preserve" 将防止从值的开头或结尾删除空格。这会生成一个如下所示的文件,您可以在其中看到保留了换行符。

Excel output showing the newline is retained.

关于c# - 使用 C# 和 OpenXML 在 xlsx 文件中写入时,Excel 单元格文本被修剪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35041820/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com