26

Aspose.Cellsを使用して、プログラムでExcelドキュメントを作成しています。これはうまくいきます。ただし、セルの1つは、生のHTMLのブロックです。セルを解析してHTMLとして表示するように、Excelに(GUIを含む任意の方法で-Aspose APIを知っている必要はありません)指示することが可能かどうか疑問に思います。現在、テキスト形式、タグ、その他すべての生のHTMLとして表示されます。

ExcelはHTMLを貼り付けることができますが、Excelがそれ自体を解析してから、Excelで変換し、HTMLを保存しないため、実際に解析して表示することはありません。 HTMLとして。さらに、とにかくこの貼り付け機能を複製する方法がわかりません。

ありがとう。

4

4 に答える 4

14

残念ながら、答えはノーです。

Excelには2つのHTMLオプションがあります。

  • HTMLファイルを開きます。これにより、HTMLがレンダリングされますが、セルに実際のHTMLは含まれません。
  • HTMLをセルに保存しますが、フォーマットされていないテキストとして保存します。

おそらく、セルにHTMLを入力し、そのHTMLをドキュメントとして保存し、Excelの別のインスタンスで開き、そのフォーマットされたHTMLを取得して、元のドキュメントに配置するマクロを思い付くことができます。そうすれば、2つの列ができます。1つはHTMLで、もう1つは出力です。しかし、それは非常に見苦しいでしょう。しないでください:0)

于 2009-12-04T00:35:36.200 に答える
9

HTMLデータをExcelに貼り付けると、HTMLがExcelで正しく表示されます。これに関する1つの問題は、キャリッジリターンとタブが次のセルに貼り付けられることです。

Dim objData As New DataObject
objData.SetText(sHTML)
Clipboard.SetDataObject(objData)
objRange.PasteSpecial()

適切にフォーマットされたテキストでセルを埋めます

于 2011-12-14T16:04:43.657 に答える
0

このコードは1つのセルで機能しました(@Rickの回答に触発されましたが、Clipboard.SetDataObject(objData)エラーが発生し、機能しなかったため、変更はほとんどありobjRange.PasteSpecial()ません):

Private Sub Worksheet_Change2(ByVal Target As Range, ByVal sht As Worksheet)
     Dim objData As DataObject 'Set a reference to MS Forms 2.0'
     Dim sHTML As String
     Dim sSelAdd As String
     Application.EnableEvents = False     
     objData = New DataObject
     sHTML = Target.Text
     objData.SetText sHTML
     objData.PutInClipboard
     sht.PasteSpecial Format:="Unicode Text"
     Application.EnableEvents = True
End Sub

Sub test()
     Dim rng As Range
     Set rng = ActiveSheet.Range("F15") 'cell to change'
     Worksheet_Change2 rng, ActiveSheet 
End Sub

詳細については、この投稿を参照してください

1つの特定のセルだけでなく、ワークシート全体で機能するように少し調整するのはそれほど難しいことではないと思います。エラーを防ぐために、このコードをラップするif条件を追加する必要があります。より詳しい情報

于 2014-03-23T13:46:10.623 に答える
0

Webブラウザコントロールを使用してMicrosoftExcelで簡単なHTMLインタプリタ(VBA)を作成する方法を示す興味深いYouTubeビデオを見つけました。HTMLとCSSコードをテキストボックスに入力すると、フォームがHTMLをWebプレビューに変換します。

MicrosoftExcel2010/2007のHTMLインタープリター-Webブラウザーに直接書き込む

于 2016-10-28T14:10:30.773 に答える