我有一个关于Excel的问题以及如何将其工作表保存/导出为html。
如果我在工作表的未合并单元格中有一个长文本,并且当我将工作表导出为wep页面时,为什么单元格的文本会在html源代码中分成多行?
例如,单元格A1有文本选择X和Y,并运行XYZ代码为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>
在一行中选择X和Y,,然后选择并运行XYZ代码将等等等等等等。有办法防止这种情况吗?一些VBA代码,还是内置设置?
我需要这些信息,因为我有一个宏代码,它扫描导出的html文件的每一行以搜索一些文本。如果文本在html文件中显示为中断,则宏无法找到它。
答案 0 :(得分:0)
HTML文本文件中的行似乎包含大约80个字符。我没有看到任何改变它的明显方法,并怀疑由于这样的换行在HTML中通常不重要,所以无法更改。如果我在Excel单元格中插入换行符(使用Alt+Enter
),则会在HTML输出中将其复制为<br>
。
你问了这个:
为什么单元格的文本在html中分成多行 源代码?
..并且答案不是很有用,我担心:“因为它是这样做的。”
你对文件的外观做了一个不合理的假设:不幸的是,在这种情况下,这个假设被证明是不正确的。您是否可以使代码更智能,以便在文件中的物理行中查找<td>
和</td>
个代码中的文本?
答案 1 :(得分: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, " ", " ")
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>