0

Excel のテーブル (派手なものはなく、テキストのみ) を WYSIWYG エディター (WordPress の CKEditor など) にコピーしようとしています。

しかし、私がそれを行うと、テーブルが属性でコピーさ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;">

tagの属性<table>はテキスト エディター自体から編集できますが、tr 属性と td 属性はどうでしょうか。それらからスタイルを削除するにはどうすればよいですか?

次のようなプレーンデータが欲しいだけです

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

これは WYSIWYG エディタの設定自体に関するものですか?

4

2 に答える 2

0

Dreamweaver を使用している場合は、Excel ファイルを CSV ファイルとして保存してからインポートできます。[ファイル] > [インポート] > [表形式データ] に移動します。これは、私の通常のアプローチである Dreamweaver のデザイン ビューにコピー アンド ペーストするには大きすぎるファイルで機能します。Dreamweaver を使用していない場合は、Mr.Data Converterなどに貼り付けて、スタイルなし HTML として出力できます。

于 2015-03-12T23:13:26.290 に答える
0

エディタの設定についてです。Excel でコピーすると、データはいくつかの異なる形式で Windows クリップボードに入れられます。これらの形式の 1 つはプレーン テキストで、もう 1 つは HTML であり、そのうちの 2 つはおそらく独自のバイナリ形式です。

別のアプリケーションに貼り付けると、必要な形式が優先されます。エディタは最初に 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>
于 2013-07-16T13:39:15.887 に答える