【问题标题】:Remove Line breaks from HTML string before inserting it into Excel Cell在将 HTML 字符串插入 Excel 单元格之前从 HTML 字符串中删除换行符
【发布时间】:2014-12-10 00:59:32
【问题描述】:

我正在使用 Microsoft Visual Studio 将数据库中的数据提取到 excel 中。数据库字段中的数据如下所示:

RISK TITLE &amp; DESC.:this is a test to see if the data disappears. <br /> <ol> <li>mvkf</li> <li>fmjdk </li> </ol> kfhjl<br /> <ul> <li>jfidj </li> <li>fjdilfjwkl </li> </ul> fnhdjkfhkd<br /> <a href=http://islhnweb/ target=_blank>fhsdklfjsd<br /> </a>jdfkls

当我将数据提取到 excel 中时,每一行文本都被写入单独的行,如下所示:

第 6 行:RISK TITLE & DESC。:这是一个测试,看看数据是否消失。
第 7 行:
第 8 行:1. mvkf
第 9 行:2. fmjdk
第 10 行:
第 11 行:kfhji
第 12 行:
第 13 行:jfidj
第 14 行:fjdilfjwkl
第 15 行:
第 16 行:fnhdjkfhkd
第 17 行:(链接)fhsdkfjsd
第 18 行:(链接)jdfkls

我需要将全部数据放在一个单元格中的 1 行中,而不是多行。

我的代码是:

case "longtext":
    tCell.Text = RLB(datarow[defrow["ColumnName"].ToString()].ToString());
    tCell.Width = 500;
    break;

下一部分如下:

    protected string RLB(string strHTML)
    {
       StringWriter myWriter = new StringWriter();
       HttpUtility.HtmlDecode(strHTML, myWriter);
       string strResult = myWriter.ToString();
       return strResult;
    }

感谢所有帮助。

【问题讨论】:

  • 您似乎要求将 HTML 转换为纯文本转换器(不仅仅是删除换行符)。是真的吗?
  • 如果可能,他们希望将数据全部放在一个单元格中,但仍保留项目符号、编号列表和超链接。

标签: c# asp.net excel row line-breaks


【解决方案1】:

删除&lt;br /&gt; 元素可能会更有效地解决这个问题。 &lt;ol&gt; 元素似乎导致了剩余的问题,因此可能需要牺牲这些问题,尽管由于 Excel 确实具有单元格内格式,它们可能可以在插入后通过一些工作重新编辑。

【讨论】:

    【解决方案2】:

    您可以尝试以下方法:

    tCell.Text = RLB(datarow[defrow["ColumnName"].ToString()].ToString()).Replace(System.Environment.NewLine, String.Empty);
    

    如果它不能解决您的问题,请尝试删除(通过添加更多 .Replace() 方法)其他转义序列,例如: \f (换页); \r (回车); \v(垂直标签)。

    希望这会有所帮助。最好的问候,

    【讨论】:

    • 感谢您的建议。我试过了,但这并没有解决我的问题。
    • 抱歉,我无法在我的电脑上重现您的问题;尝试我在扩展答案中描述的一些其他技术。最好的问候,
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-14
    • 2023-03-10
    • 1970-01-01
    • 2014-01-10
    • 2022-07-01
    • 2013-01-23
    相关资源
    最近更新 更多