VBAによるexcelデータテーブルのJSONファイル生成(utf 8)

3553 ワード

ADODB.StreamはUTF-8+BOMコードのテキストファイルを作成します.
その後、データ領域を巡り、データをフォーマットし、出力すればいいです.
小さいデータはまあまあですが、大きなデータはテストされていません.
また、fsoで作成したテキストファイルはANSIとして符号化され、ajaxでjsonを解析中に文字化けして正常に解析できない.Sub ToJson() ' UTF8   myrange = Worksheets( "sheet1" ).UsedRange  '   'myrange = ActiveWorkbook.Names("schoolinfo").RefersToRange '   'myrange = Range(Worksheets("sheet1").Range("a1").End(xlDown), Worksheets("sheet1").Range("a1").End(xlToRight)) '
  Total = UBound(myrange, 1) ' Fields = UBound(myrange, 2) '
        Dim objStream As Object       Set objStream = CreateObject( "ADODB.Stream" )               With objStream              .Type = 2              .Charset = "UTF-8"              .Open              .WriteText "{" "total" ":" & Total & "," "contents" ":["                     For i = 2 To Total                  .WriteText "{"                  For j = 1 To Fields                      .WriteText "" "" & myrange(1, j) & "" ":" "" & Replace(myrange(i, j), "" "" , "\"" ") & " "" "                       If j <> Fields Then                          .WriteText ","                       End If                  Next                  If i = Total Then                          .WriteText "}"                  Else                          .WriteText "},"                  End If              Next
               .WriteText "]}"              .SaveToFile ActiveWorkbook.FullName & ".json" , 2       End With       Set objStream = Nothing End Sub