gpt4 book ai didi

c# - 如何在 OPENXML 电子表格单元格中插入换行符?

转载 作者:太空狗 更新时间:2023-10-29 19:59:17 26 4
gpt4 key购买 nike

我目前正在使用类似这样的方法在单元格中插入内联字符串:

new Cell() 
{
CellReference = "E2",
StyleIndex = (UInt32Value)4U,
DataType = CellValues.InlineString,
InlineString = new InlineString(new Text( "some text"))
}

但是 \n 不能插入换行符,我该怎么做?


响应

new Cell(
new CellValue("string \n string")
)
{
CellReference = "E2",
StyleIndex = (UInt32Value)4U,
DataType = CellValues.String
}

最佳答案

你需要做两件事:

1.) 将单元格标记为“环绕文本”。如果您使用现有电子表格作为模板,则可以在电子表格中手动执行此操作。只需右键单击单元格并选择“格式化单元格..”,单击“对齐”选项卡并选中“自动换行"复选框。
或... 您可以以编程方式设置 CellFormat。如果您有一个名为“cf ”的 CellFormat 对象,您将执行如下操作:

cf.ApplyAlignment = true;//Set this so that Excel knows to use it.
if (cf.Alignment == null)//If no pre-existing Alignment, then add it.
cf.Alignment = new Alignment() { WrapText = true };
Alignment a = cf.Alignment;
if (a.WrapText == null || a.WrapText.Value == false)
a.WrapText = new BooleanValue(true);//Update pre-existing Alignment.

2.) 你不应该使用“\n”,而应该使用标准的回车+换行组合:“\r\n”
如果您将两者混合使用(即“\n”前面没有“\r”和“\r\n”),这应该在填充单元格值之前修复它:

sHeaderText = sHeaderText.Replace("\r\n", "\n").Replace("\n", "\r\n");

我自己不使用 CellValues.String 甚至 CellValues.InlineString
相反,我使用 CellValues.SharedString(就像 Excel 一样)构建我的文本单元格。
对于 Bool,我使用“CellValues.Boolean”,对于所有其他(数字和日期)我没有将单元格的 DataType 设置为任何值 - 因为当我查看它创建的标记时,Excel 就是这样做的。

关于c# - 如何在 OPENXML 电子表格单元格中插入换行符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/732068/

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