佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > VBA將excel數(shù)據(jù)表生成JSON文件

VBA將excel數(shù)據(jù)表生成JSON文件

熱門標(biāo)簽:百度AI接口 客戶服務(wù) 語(yǔ)音系統(tǒng) Win7旗艦版 呼叫中心市場(chǎng)需求 企業(yè)做大做強(qiáng) 硅谷的囚徒呼叫中心 電話運(yùn)營(yíng)中心

ADODB.Stream創(chuàng)建UTF-8+BOM編碼的文本文件。

然后遍歷數(shù)據(jù)區(qū),格式化數(shù)據(jù),輸出即可。

小數(shù)據(jù)還行,大數(shù)據(jù)沒測(cè)試。

另,使用fso創(chuàng)建的文本文件編碼為ANSI,ajax解析json時(shí)出現(xiàn)亂碼無(wú)法正常解析。

Sub ToJson() '創(chuàng)建UTF8文本文件
 myrange = Worksheets("sheet1").UsedRange '通過有效數(shù)據(jù)區(qū)來(lái)選擇數(shù)據(jù)
 'myrange = ActiveWorkbook.Names("schoolinfo").RefersToRange '通過定義的名稱來(lái)選擇數(shù)據(jù)
 'myrange = Range(Worksheets("sheet1").Range("a1").End(xlDown), Worksheets("sheet1").Range("a1").End(xlToRight)) '通過標(biāo)題行的最大行最大列來(lái)選擇數(shù)據(jù)
 
Total = UBound(myrange, 1) '獲取行數(shù)
Fields = UBound(myrange, 2) '獲取列數(shù)
 
   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

最近在寫一網(wǎng)站網(wǎng)頁(yè),需要從后臺(tái)ASP網(wǎng)頁(yè)查詢到的MYSQL記錄集返回給前臺(tái)ASP網(wǎng)頁(yè),我們知道AJAX是無(wú)力從后臺(tái)返回?cái)?shù)據(jù)庫(kù)記錄集給前臺(tái)網(wǎng)頁(yè)的.

查閱大量資料,就目前而言記錄集轉(zhuǎn)換成JSON格式流,再由前臺(tái)VBA導(dǎo)入WEBoffice控件的excel是個(gè)不錯(cuò)的選擇.經(jīng)過些思考,現(xiàn)將function過程代碼奉獻(xiàn)給大家.

    Function GetJSON(Rs)
    Dim JSON  
    dim returnStr 
    dim i
    dim oneRecord   
    if Rs.eof=false and Rs.Bof=false then
    returnStr="{ "chr(34)"records"chr(34)":["    
    while Rs.eof=false
    
     for i=0 to Rs.Fields.Count -1
      oneRecord=oneRecord  chr(34)  Rs.Fields(i).Name  chr(34) ":" 
      oneRecord=oneRecord  chr(34)  Rs.Fields(i).Value  chr(34) ","
     Next
     oneRecord=left(oneRecord,InStrRev(oneRecord,",")-1)
     oneRecord=oneRecord  "},"
     returnStr=returnStr   oneRecord
     Rs.MoveNext
    Wend
    returnStr=left(returnStr,InStrRev(returnStr,",")-1)
    returnStr=returnStr  "]}"
    end if 
    GetJSON=returnStr   
  End Function

您可能感興趣的文章:
  • 用vba實(shí)現(xiàn)將記錄集輸出到Excel模板
  • excel vba 限制工作表的滾動(dòng)區(qū)域代碼
  • excel vba 高亮顯示當(dāng)前行代碼
  • Excel VBA連接并操作Oracle
  • php 備份數(shù)據(jù)庫(kù)代碼(生成word,excel,json,xml,sql)
  • VBA中操作Excel常用方法總結(jié)
  • Node.js實(shí)現(xiàn)Excel轉(zhuǎn)JSON

標(biāo)簽:海南 喀什 濟(jì)南 崇左 山西 安康 長(zhǎng)沙 山西

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《VBA將excel數(shù)據(jù)表生成JSON文件》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    涿州市| 旬阳县| 荆州市| 仲巴县| 石门县| 西乌珠穆沁旗| 双辽市| 沅陵县| 太仆寺旗| 玛曲县| 湖南省| 玉田县| 大余县| 镇远县| 高雄县| 庐江县| 安仁县| 石泉县| 鄂伦春自治旗| 南康市| 峨眉山市| 通化市| 彩票| 北宁市| 卢湾区| 盐山县| 仁布县| 许昌市| 原平市| 娄底市| 万荣县| 营山县| 紫阳县| 临安市| 外汇| 新余市| 城固县| 古田县| 武功县| 双江| 麦盖提县|