我需要在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);
}