2025年4月30日 星期三

VBA SVG HTML 生成 幼幼班

 幼幼班是把產生的SVG圖檔在讀回EXCEL當中,小編感覺不夠好用,畢竟都被EXCEL綁住了。

小編作了一個丟資料陣列即可生成SVG HTML的function,作演練:

vba:


幼幼班等級,當簡易分享。

function 貼入模組,然後做一個按鈕,假如資料在b行,抓99筆資料畫圖。

how to use:

Private Sub CommandButton1_Click()

sheet_array = Array("工作表2 (5)")

start_row = 2

end_row = 99

bar_array = Array("b")

htmlContent = "<html><head>" & _

        "<meta http-equiv='X-UA-Compatible' content='IE=edge'>" & _

        "<style>" & _

        "body { margin:0; padding:20px; font-family:sans-serif; background:#f0f0f0; }" & _

        ".chart-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; max-width:1240px; margin:0 auto; }" & _

        ".svg-container { border:1px solid #ccc; padding:10px; background:white; box-shadow:0 2px 5px rgba(0,0,0,0.1); }" & _

        "svg { width:100%; height:auto; }" & _

        "</style>" & _

        "</head><body>"        

        labels_b = WorksheetFunction.Transpose(Sheets(sheet_array(x)).Range("x" & start_row & ":x" & end_row))        

        'labels_b = WorksheetFunction.Transpose(labels_b)        

        bar_index = WorksheetFunction.Transpose(Sheets(sheet_array(x)).Range(bar_array(x) & start_row & ":" & bar_array(x) & end_row))       

        htmlContent = htmlContent & "<div class='svg-container'>"        

    '針對資料編碼

        htmlContent = htmlContent & DrawSingle_LINE_Chart(labels_b, bar_index, "test")               

        htmlContent = htmlContent & "</div>"

'表尾

htmlContent = htmlContent & "</div></body></html>"

'輸出成html檔案

    filePath = ActiveWorkbook.Path    

    filePath = filePath & "\" & "test" & ".html"

    Set fso = CreateObject("ADODB.Stream")

    fso.Type = 2

    fso.Charset = "utf-8"

    fso.Open

    fso.WriteText htmlContent

    fso.SaveToFile filePath, 2

    fso.Close  

End Sub


玩玩看,開啟更多元應用





沒有留言:

張貼留言

指數變化(2025.08.29) 開始透過AI做整理

 指數變化(2025.08.29) 開始透過AI做整理 上周焦點: 8/19(二)   美國房屋開工率 5%月增  美國建築許可月增率 月增2.8% 8/20(三)   美國房貸綜合指數 月減0.5%  美國30年期房貸利率 6.69%  美國15年期房貸利率 5.8~5.71%...