Excel はセルを HTML として解釈できますか?
-
12-09-2019 - |
質問
Aspose.Cells を使用して Excel ドキュメントをプログラムで作成しています。これはうまくいきます。ただし、セルの 1 つは生の HTML のブロックです。Excel に (GUI を含むあらゆる方法で - Aspose API を知る必要はありません) セルを HTML として解析して表示するように指示できるかどうか疑問に思っています。現時点では、テキスト形式、タグなどすべての生の HTML として表示されます。
Excel に HTML を貼り付けることができることは知っていますが、Excel はそれを独自に解析して Excel 化しているだけのようで、HTML を保存していないため、実際には解析して表示していません。 HTMLとして。さらに、とにかくこの貼り付け機能を複製する方法がわかりません。
ありがとう。
解決
残念ながら、答えはノーです。
Excel には 2 つの HTML オプションがあります。
- HTML ファイルを開きます。HTML がレンダリングされますが、セルには実際の HTML は含まれません。
- HTML をセルに保存しますが、書式設定されていないテキストとして保存します。
おそらく、セルに HTML を入力し、その HTML をドキュメントとして保存し、Excel の別のインスタンスで開き、その書式設定された HTML を取得して元のドキュメントに配置するマクロを思いつくかもしれません。そうすれば、HTML が含まれる列と出力が含まれる列の 2 つの列が作成されます。だろう とても 見苦しいけど。やめてください:0)
他のヒント
Excelで貼り付けたHTMLデータが正しくExcelで表示されるHTMLをもたらすであろう。これで1つの問題は、改行やタブは、次のセルに貼り付けされることです。
Dim objData As New DataObject
objData.SetText(sHTML)
Clipboard.SetDataObject(objData)
objRange.PasteSpecial()
適切にフォーマットさテキストとセルを記入します。
Clipboard.SetDataObject(objData)
がエラーを引き起こしたともobjRange.PasteSpecial()
が機能しなかったので、いくつかの変更ではなく、@リックの答えに触発さ)このコードは、1つのセルで私のために働いてます:
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
このポストを見ますいくつかの詳細は、
私はそれは、ワークシート全体のために働くだろうと見、エラーを防止するために、条件はこのコードをラップする場合だけでなく、ある特定のセルは、おそらくいくつかを追加する必要があることを、それを少し微調整するためにあまりにも難しいことではありません推測します< href =「https://stackoverflow.com/questions/9999713/html-text-with-tags-to-formatted-text-in-an-excel-cell」>いくつかの詳細は、このポストする
私は、Webブラウザコントロールを使用してMicrosoft Excelで簡単なHTMLインタプリタ(VBA)を作成する方法を示して面白いYouTubeの動画を見つけました。テキストボックスにあなたのHTMLとCSSのコードを入力し、フォームがWebプレビューにHTMLに変換されます。