首页 文章

换行符从Excel中导出的html中断

提问于
浏览
0

我有一个关于Excel的问题以及如何将其工作表保存/导出为html .

如果我在工作表的未合并单元格中有一个长文本,并且当我将工作表导出为wep页面时,为什么单元格的文本会在html源代码中分成多行?

例如,单元格A1具有文本 Select X and Y, and run XYZ code to blah blah blah . 当工作表保存为网页时,源代码如下所示:

<tr height=20 style='height:15.0pt'>
  <td height=20 class=xl1511698 colspan=5 style='height:15.0pt'>Select X and Y,
  and run XYZ code to blah blah blah</td>
 </tr>

Select X and Y, 在一行中, and run XYZ code to blah blah blah 在另一行中 . 有办法防止这种情况吗?一些VBA代码,还是内置设置?

我需要这些信息,因为我有一个宏代码,它扫描导出的html文件的每一行以搜索一些文本 . 如果文本在html文件中显示为中断,则宏无法找到它 .

2 回答

  • 0

    看来HTML文本文件中的行包裹大约80个字符 . 我在HTML中通常没有重要意义,因此无法更改 . 如果我在Excel单元格中插入换行符(使用 Alt+Enter ),则会在HTML输出中将其复制为 <br> .

    你问这个:

    为什么单元格的文本在html源代码中分成多行?

    ..答案并不是很有用,我担心:“因为它是这样做的” .

    你对文件的外观做了一个不合理的假设:不幸的是,在这种情况下,假设被证明是不正确的 . 你能使你的代码变得更聪明,以便在文件的物理行中查找 <td></td> 标记内的文本吗?

  • 0

    好吧,我也找到了一个解决方法 . 我使用以下VBA代码打开html文件进行编辑:

    Open filePath For Input As #nextFileNum
      oldFileContents = Input$(LOF(nextFileNum), #nextFileNum)
      Close #nextFileNum
    

    然后使用以下VBA代码行,我整理标签,以便所有文本(实际内容)出现在一行中:

    oldFileContents = Replace(oldFileContents, vbCrLf, " ")
    oldFileContents = Replace(oldFileContents, Chr(13), "")
    oldFileContents = Replace(oldFileContents, Chr(10), "")
    oldFileContents = Replace(oldFileContents, "&nbsp;", " ")
    oldFileContents = Replace(oldFileContents, ">", ">" + vbCrLf)
    oldFileContents = Replace(oldFileContents, "</", vbCrLf + "</")
    oldFileContents = Replace(oldFileContents, "  ", "")
    

    这将html源代码格式化为:

    <tr height=20 style='height:15.0pt'>
    <td height=20 class=xl1511698 colspan=5 style='height:15.0pt'>
    Select X and Y,  and run XYZ code to blah blah blah
    </td>
    </tr>
    

相关问题