2013-07-16 45 views
0

我想複製一個Excel表(沒有什麼花哨,只是文本)到一個所見即所得的編輯器,如CKEditor for WordPress。如何從Excel複製到沒有樣式的WYSIWYG編輯器?

但是當我這樣做時,我看到該表複製了widthheight屬性。所以HTML源代碼如下所示:

<table border="0" cellpadding="0" cellspacing="0" style="width:483px;" width="483"> 
    <colgroup> 
     <col /> 
     <col span="4" /> 
    </colgroup> 
    <tbody> 
     <tr height="19"> 
      <td height="19" style="height:19px;width:227px;"> 

<table>標籤的屬性可以從文本編輯器本身,但對於TR和TD的屬性進行編輯?我如何從他們中刪除風格?

我只是想喜歡

<table> 
<tr> 
<td></td> 
</tr> 
</table> 

明文數據這是關於所見即所得的編輯器的設置本身?

回答

0

這是關於編輯器設置。當您在Excel中複製時,它會以幾種不同的格式將數據放入Windows剪貼板。其中一種格式是純文本格式,另一種格式是HTML格式,其中可能有一些專有的二進制格式。

當你在另一個應用程序中過去時,它具有它想要的格式的優先級。您的編輯器可能會首先查找HTML。如果有HTML格式,它會抓住它。如果複製的數據無法通過Windows剪貼板表示爲HTML,則編輯器可能會轉到列表中的#2格式 - 可能是純文本。

如果您想控制Excel表格如何轉換爲HTML,您必須自己動手。此代碼將Excel範圍轉換爲html表格。

Sub CopyRangeToHtmlTable() 

    Dim doClip As MSForms.DataObject 
    Dim vaTable As Variant 
    Dim i As Long, j As Long 
    Dim aTable() As String 
    Dim aRow() As String 

    'Read range into array 
    vaTable = Sheet1.Range("A1:B4").Value 

    'set up array to hold all of the rows 
    ReDim aTable(1 To UBound(vaTable, 1)) 

    'loop through the rows 
    For i = LBound(vaTable, 1) To UBound(vaTable, 1) 
     'set up array to hold all of the tds 
     ReDim aRow(1 To UBound(vaTable, 2)) 
     'loop through the tds 
     For j = LBound(vaTable, 2) To UBound(vaTable, 2) 
      aRow(j) = Tag(vaTable(i, j), "td") 
     Next j 
     'add the row to the table array 
     aTable(i) = Tag(Join(aRow, vbNullString), "tr") 
    Next i 

    'put the table into the clipboard 
    Set doClip = New MSForms.DataObject 
    doClip.SetText Tag(Join(aTable, vbNewLine), "table", , True) 
    doClip.PutInClipboard 

End Sub 

Public Function Tag(ByVal sValue As String, _ 
    ByVal sTag As String, _ 
    Optional sAttr As String = "", _ 
    Optional bIndent As Boolean = False) As String 

    Dim sReturn As String 

    If Len(sAttr) > 0 Then 
     sAttr = Space(1) & sAttr 
    End If 

    If bIndent Then 
     sValue = vbTab & Replace(sValue, vbNewLine, vbNewLine & vbTab) 
     sReturn = "<" & sTag & sAttr & ">" & vbNewLine & sValue & vbNewLine & "</" & sTag & ">" 
    Else 
     sReturn = "<" & sTag & sAttr & ">" & sValue & "</" & sTag & ">" 
    End If 

    Tag = sReturn 

End Function 

當我粘貼到記事本,它出來像

<table> 
    <tr><td>Name</td><td>Number</td></tr> 
    <tr><td>Tom</td><td>1</td></tr> 
    <tr><td>Dick</td><td>2</td></tr> 
    <tr><td>Harry</td><td>3</td></tr> 
</table> 
0

如果你使用Dreamweaver,您可以將Excel文件保存爲CSV文件,然後導入。轉到文件>導入>表格數據。這適用於太大的文件,無法複製並粘貼到Dreamweaver的「設計」視圖中,這是我常用的方法。如果您不使用Dreamweaver,則可以將其粘貼到Mr. Data Converter之類的內容中,並將其輸出爲未格式化的HTML。