2012-12-06 44 views
0

我有一個關於Excel的問題,以及它如何將它的工作表保存/導出爲html。從Excel中導出html的換行符

如果我在工作表的未合併單元格中有長文本,並且當我將工作表導出爲wep頁面,爲什麼單元格的文本在html源代碼中分成多行?

例如,單元格A1有文字選擇X和Y,然後運行XYZ代碼來等待等等。當工作表保存爲網頁源代碼如下:

<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>標籤中的文本?

+0

對搜索​​和代碼行內的文本很有意義。謝謝,你的回答很有幫助。 – user1492667

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>