幼幼班是把產生的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
玩玩看,開啟更多元應用
沒有留言:
張貼留言