0

HTMLページへの何百もの画像パスを含むスプレッドシートを隠そうとしています。例えば:

excel sheet
imageId    imagePath   

1           images/ima1
2           images/ima2
3           images/ima3
...         .........
...          ........

これらの画像を1つずつ入力する代わりにhtmlファイルに変換するより速い方法はありますか?

必要なhtmlファイルは次のようなものです。

<img src=images/ima1 title='ima1' />
<img src=images/ima2 title='ima2' />
<img src=images/ima3 title='ima3' />

助けてくれてありがとう。

4

2 に答える 2

1

次の列に数式を作成します。images / ima1がB2にあると仮定すると、これはC2に入れて、目的の画像を取得し、数式を貼り付けることができます。

 ="<img src="&B2&" title='"&RIGHT(B2,LEN(B2)-4)&"' />"
于 2012-07-31T01:16:09.973 に答える
1

あなたがやりたいことをすることができるいくつかの方法があります。

1。別のシートで、最初のシートから情報を取得し、必要なHTMLを生成する数式を作成します。

="<img src=" & CHAR(34) & INDIRECT("Sheet1!B" &ROW()) & CHAR(34) & " title=" & CHAR(34) & INDIRECT("Sheet1!A" & ROW()) & " />"

データがSheet1にあるとすると、2番目のシートのすべての行(その数式が含まれている)には、Sheet1の同じ行のhtmlが含まれます。(同じでない場合は、シート名と列を調整する必要があります)

これを行うと、2枚目のシートからすべてをコピーして貼り付けることができます。

2。マクロを使用してファイルを生成します。

    Public Sub GenerateHTML()
    Dim Handle As Integer
    Dim Sheet As Worksheet
    Dim Row As Integer

    Set Sheet = ThisWorkbook.ActiveSheet
    Row = 2

    Handle = FreeFile()

    Open "output.html" For Output As Handle

    Print #Handle, "<html>" & vbNewLine & "<head>" & vbNewLine & "<title>My Gallery...</title>" & vbNewLine & "</head>" & vbNewLine & "<body>"

    Do
        If Sheet.Cells(Row, 1) = "" Then
            Exit Do
        Else
            Print #Handle, "<img src=" & Chr(34) & Sheet.Cells(Row, 2) & Chr(34) & " title=" & Chr(34) & "ima" & Sheet.Cells(Row, 1) & Chr(34) & "/>"
            Row = Row + 1
        End If
    Loop

    Print #Handle, "</body>" & vbNewLine & "</html>"

    Close #Handle

    End Sub

この例では、すべてのリンクを含むスプレッドシートと同じディレクトリにhtmlファイルを作成します。おそらく完全に正しくないため、ニーズに合わせて調整する必要があります。

于 2012-07-31T01:27:21.390 に答える