如何在没有样式的情况下从Excel复制到所见即所得编辑器?
我正在尝试将Excel表格(没有什么特别之处,只是文本)复制到WYSIWYG编辑器中,比如WordPress的CKEditor 但是当我这样做时,我看到表是用如何在没有样式的情况下从Excel复制到所见即所得编辑器?,excel,ckeditor,wysiwyg,Excel,Ckeditor,Wysiwyg,我正在尝试将Excel表格(没有什么特别之处,只是文本)复制到WYSIWYG编辑器中,比如WordPress的CKEditor 但是当我这样做时,我看到表是用width和height属性复制的。因此HTML源代码如下所示: <table border="0" cellpadding="0" cellspacing="0" style="width:483px;" width="483"> <colgroup> <col />
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;">
标记的属性可以从文本编辑器本身编辑,但是tr和td属性呢?如何从中删除样式
我只需要像这样的简单数据
<table>
<tr>
<td></td>
</tr>
</table>
这是关于所见即所得编辑器本身的设置吗?这是关于编辑器设置的。在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
子CopyRangeToHtmlTable()
将doClip设置为MSForms.DataObject
可作为变体的
我和我一样长,我和我一样长
Dim aTable()作为字符串
Dim aRow()作为字符串
'将范围读入数组
vaTable=表1.范围(“A1:B4”).值
'设置数组以容纳所有行
重拨数据表(1至UBound(增值税,1))
'在行中循环
对于i=LBound(可增值税,1)到UBound(可增值税,1)
'设置阵列以容纳所有tds
周围重播(1至UBound(可增值税,2))
'通过tds循环
对于j=LBound(可增值税,2)到UBound(可增值税,2)
aRow(j)=标签(可增值税(i,j),“td”)
下一个j
'将行添加到表数组中
aTable(i)=标记(Join(aRow,vbNullString),“tr”)
接下来我
'将表格放入剪贴板
Set doClip=New MSForms.DataObject
doClip.SetText标记(Join(aTable,vbNewLine),“table”,True)
doClip.PutInClipboard
端接头
公共函数标记(ByVal值作为字符串_
比瓦尔·斯塔格作为弦_
可选sAttr As字符串=”_
可选bIndent As Boolean=False)As String
变暗,变为字符串
如果Len(sAttr)>0,则
sAttr=空间(1)和sAttr
如果结束
如果是宾登的话
sValue=vbTab&Replace(sValue、vbNewLine、vbNewLine&vbTab)
sReturn=“&vbNewLine&sValue&vbNewLine&”
其他的
sReturn=“&s值&”
如果结束
Tag=sReturn
端函数
当我粘贴到记事本上时,它显示为
<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
Dick2
哈利3
如果使用Dreamweaver,可以将Excel文件保存为CSV文件,然后导入。转到文件>导入>表格数据。这适用于太大的文件,无法复制并粘贴到Dreamweaver的设计视图中,这是我的常规方法。如果您没有使用Dreamweaver,您可以将其粘贴到类似的内容中,并将其作为非样式HTML输出