我正在使用 Aspose 库创建 Excel 文档。在某个单元格的某个位置,我需要在文本的两个部分之间插入新行。

我尝试了“ ”,但它不起作用,只在单元格中显示两个方形符号。不过,我可以按 Alt+Enter 在同一单元格中创建新行。

如何以编程方式插入新行?

有帮助吗?

解决方案

来自 Aspose Cells 论坛: 如何在单元格中使用换行符?

提供文本后,您应该将单元格的 IsTextWrapped 样式设置为 true

worksheet.Cells[0, 0].Style.WrapText = true;

其他提示

cell.Text = "your firstline<br style=\"mso-data-placement:same-cell;\">your secondline";

如果你正在从数据库的文本,然后:

cell.Text = textfromDB.Replace("\n", "<br style=\"mso-data-placement:same-cell;\">");

您需要插入该Excel使用的字符代码,这是IIRC 10(十)。


修改:OK,这里的一些代码。注意,我能够确认所使用的字符码确实10,通过创建含有细胞:

  

A

     

...然后选择它并在VBA即时窗口执行这样的:

?Asc(Mid(Activecell.Value,2,1))

因此,需要将该值插入在VBA另一小区的代码将是:

ActiveCell.Value = "A" & vbLf & "B"

(因为vbLf是字符代码10)。

我知道你正在使用C#,但我觉得它的的更容易弄清楚,如果你先做做什么用的VBA,因为你可以尝试一下“互动”,而无需编译任何东西。无论你在C#中做的仅仅是复制你在VBA做,所以有很少任何区别。 (记住,C#互操作的东西是只使用相同的基础COM库为VBA)。

总之,C#为这将是:

oCell.Value = "A\nB";

现货的区别: - )


修改2 :Aaaargh!我只是重新阅读后,看到你正在使用阅读Aspose库。对不起,在这种情况下我不知道。

内部Excel使用U + 000D U + 000A(CR + LF,\r\n),用于换行,至少在它的XML表示。我也不能在细胞直接找到该值。它被迁移到包含共享字符串的另一个XML文件。也许这包含换行符细胞被文件格式不同的处理和您的图书馆不知道这一点。

的SpreadsheetGear用于.NET 确实是这样:

        IWorkbook workbook = Factory.GetWorkbook();
        IRange a1 = workbook.Worksheets[0].Cells["A1"];
        a1.Value = "Hello\r\nWorld!";
        a1.WrapText = true;
        workbook.SaveAs(@"c:\HelloWorld.xlsx", FileFormat.OpenXMLWorkbook);

请注意了“WrapText =真” - 没有这个Excel将不换行。我假设的Aspose具有相似的API。

声明:我自己的SpreadsheetGear LLC

如果有人对基础设施解决方案感兴趣,就在这里。

  1. 使用

    Environment.NewLine

  2. 确保您的电池已包裹好

    dataSheet.Rows[i].Cells[j].CellFormat.WrapText = ExcelDefaultableBoolean.True;

“\ n” 个工作正常。如果输入的是从多行文本框的到来,新的行字符将是“\ r \ n”,如果被替换为“\ n”,它会工作。

使用PEAR 'Spreadsheet_Excel_Writer' 和 'OLE':

只有这样我能得到“\n”工作是使细胞$format->setTextWrap();,然后使用“\n”会的工作。

您可以使用 Chr(13)。然后将整个内容包装在 Chr(34) 中。Chr(34) 是双引号。

  • VB.Net 示例:
  • 联系信息 = ""
  • TheContactInfo = Trim(TheEmail) & chr(13)
  • TheContactInfo = TheContactInfo & Trim(ThePhone) & chr(13)
  • 联系人信息 = Chr(34) & 联系人信息 & Chr(34)

什么工作对我来说:

worksheet.Cells[0, 0].Style.WrapText = true;
worksheet.Cells[0, 0].Value = yourStringValue.Replace("\\r\\n", "\r\n");

我的问题是,\ r \ n逃出来了。

实际上,这是非常简单的。

您可以编辑Excel的XML版本。编辑电池给它的文本之间的新行,然后保存。稍后,您可以打开编辑的文件,然后你会看到一个新的生产线可表示为 &#10;

有一个尝试....

您是否尝试过 “\ n” 我想,它应该工作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top