如何在C#中将回车/换行添加到StringBuilder

时间:2018-03-06 16:16:55

标签: c# string stringbuilder carriage-return

我需要在DOCX发票上显示地址,我们使用OOXML SDK为客户生成。 Invoice的标题有一个带有单元格的表,分配给该地址。

地址已作为单独的列保存在每行中,并且在发票上每行应显示为新的一行,例如

Science Museum, London
Exhibition Rd, Kensington
London
SW7 2DD

可悲的是,无论我尝试什么,我总是把它全部放在一行,所以发票可以看作是

Science Museum, London Exhibition Rd, Kensington
London SW7 2DD

为此我有一个StringBuilder(尝试过一个简单的字符串也无济于事)

StringBuilder headerAddress = new StringBuilder();

我填充。我已经尝试了很多方法来强制断线,例如\ r \ n,Environment.NewLine或+(char)13 +(char)10。没有人工作过。下面是我的代码示例。为了便于阅读,我已经展示了我曾经尝试过的所有三个选项,但在我的实际代码中,我已经分别尝试了所有这三个选项。

可以告诉我我做错了吗?

protected override void OnLeaveRow()
        {
            if (_AccountInvAddress.AddressLine1 != "")
                _parent.headerAddress.Append(_AccountInvAddress.AddressLine1.Trim() + "\r\n");
            if (_AccountInvAddress.AddressLine2 != "")
                _parent.headerAddress.Append(_AccountInvAddress.AddressLine2.Trim() + "\r\n");
            if (_AccountInvAddress.AddressLine3 != "")
                _parent.headerAddress.Append(_AccountInvAddress.AddressLine3.Trim() + Environment.NewLine);
            if (_AccountInvAddress.AddressLine4 != "")
                _parent.headerAddress.Append(_AccountInvAddress.AddressLine4.Trim() + Environment.NewLine);
            if (_AccountInvAddress.AddressLine5 != "")
                _parent.headerAddress.Append(_AccountInvAddress.AddressLine5.Trim() + (char)13 + (char)10);
            if (_AccountInvAddress.AddressLine6 != "")
                _parent.headerAddress.Append(_AccountInvAddress.AddressLine6.Trim() + (char)13 + (char)10);
            if (_AccountInvAddress.AddressLine7 != "")
                _parent.headerAddress.Append(_AccountInvAddress.AddressLine7.Trim() + (char)13 + (char)10);

        }

0 个答案:

没有答案