我正在尝试将Excel表格(没有任何花哨,只是文本)复制到WYSIWYG编辑器,如CKEditor for WordPress。
但是当我这样做时,我看到该表是使用width
和height
属性复制的。所以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>
这是关于WYSIWYG编辑器的设置吗?
答案 0 :(得分: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>
答案 1 :(得分:0)
如果使用Dreamweaver,则可以将Excel文件另存为CSV文件,然后将其导入。转到文件&gt;导入&gt;表格数据。这适用于太大而无法复制并粘贴到Dreamweaver设计视图中的文件,这是我的常规方法。如果您不使用Dreamweaver,可以将其粘贴到类似Mr. Data Converter的内容中,并将其输出为无样式的HTML。