VBA将excel数据表生成JSON文件

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

最近在写一网站网页,需要从后台ASP网页查询到的MYSQL记录集返回给前台ASP网页,我们知道AJAX是无力从后台返回数据库记录集给前台网页的.

查阅大量资料,就目前而言记录集转换成JSON格式流,再由前台VBA导入WEBoffice控件的excel是个不错的选择.经过些思考,现将function过程代码奉献给大家.

    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
(0)

相关推荐

  • Excel VBA连接并操作Oracle

    以下是通过Excel 的VBA连接Oracle并操作Oracle相关数据的示例Excel 通过VBA连接数据库需要安装相应的Oracle客户端工具并引用ADO的相关组件,引用ADO相关组件可按如下步骤操作: 1.打开VBA编辑器,在菜单中点选"工具","引用": 2.确保"Microsoft ActiviteX Data Objects 2.8 Library"和"Microsoft ActiviteX Data ObjectS Rec

  • Node.js实现Excel转JSON

    一直在做一个关于网上选课的系统,选用了时下比较流行的node.js.今天在想怎么把学生或者老师的信息导入进去,涉及数量比较多一点,我手边又正好有一部分excel的表格.就想把excel转成json然后倒入到mongodb中去. 搜了下网上的资料,有不少.大部分都是C#或python的,要吗自己编译,要吗各种缺库运行不了.google了一下发现居然node里面是有这个module的.网址是https://www.npmjs.com/package/xls-to-json.. 步骤的话大概记录下吧:

  • 用vba实现将记录集输出到Excel模板

    复制代码 代码如下: '************************************************  '** 函数名称:  ExportTempletToExcel  '** 函数功能:  将记录集输出到 Excel 模板  '** 参数说明:  '**            strExcelFile         要保存的 Excel 文件  '**            strSQL               查询语句,就是要导出哪些内容  '**         

  • excel vba 限制工作表的滚动区域代码

    ScrollArea属性使用以A1样式的区域引用形式(字符串类型)返回或设置工作表允许滚动的区域.当设置了工作表滚动区域之后,用户不能选定滚动区域之外的单元格,但仍然可以选定区域之外的其他对象(例如图形.按钮等),同时工作表的一些相应功能可能被禁止(例如工作表全选.选中整行或整列等). 在VBE中的工程管理窗口选择相应工作表对象,然后在其属性窗口中设置ScrollArea属性,即可限制工作表中滚动的区域,如图所示. 但是Excel不会记忆该项设置,当再次打开该工作簿时,ScrollArea属性将

  • php 备份数据库代码(生成word,excel,json,xml,sql)

    单表备份代码: 复制代码 代码如下: <?php    class Db    {        var $conn; function Db($host="localhost",$user="root",$pass="root",$db="test")        {          if(!$this->conn=mysql_connect($host,$user,$pass))          die(

  • VBA中操作Excel常用方法总结

    要用VBA来关闭工作簿,用Workbook.Close 方法即可,而要退出Excel,则用Application.Quit 方法. 下面是一些代码示例: 关闭活动工作簿,如果工作簿有更改,提示是否保存: 复制代码 代码如下: Sub CloseWorkbook()     ActiveWorkbook.Close     End Sub 如果要避免出现提示,可添加"SaveChanges"参数,如直接保存并关闭工作簿: 复制代码 代码如下: Sub ClostAndSaveWorkbo

  • excel vba 高亮显示当前行代码

    代码: 复制代码 代码如下: Private Sub Worksheet_SelectionChange(ByVal Target As Range) ThisWorkbook.Names.Add "XM", Target End Sub 这几行代码的作用是,当选择新的单元格时,将这个单元格(或者区域)定义为名称"XM",在条件格式设置中可以引用这个名称. 如下面的附件,将代码粘贴完成后,返回工作表中,选择A4:I15,点击菜单"格式-条件格式"

  • VBA将excel数据表生成JSON文件

    ADODB.Stream创建UTF-8+BOM编码的文本文件. 然后遍历数据区,格式化数据,输出即可. 小数据还行,大数据没测试. 另,使用fso创建的文本文件编码为ANSI,ajax解析json时出现乱码无法正常解析. Sub ToJson() '创建UTF8文本文件 myrange = Worksheets("sheet1").UsedRange '通过有效数据区来选择数据 'myrange = ActiveWorkbook.Names("schoolinfo"

  • Python SQL查询并生成json文件操作示例

    本文实例讲述了Python SQL查询并生成json文件操作.分享给大家供大家参考,具体如下: 1. 数据准备 SQL数据点击此处本站下载. 2. python代码 import datetime import os import mssqlhelper ms = mssqlhelper.MSSQL(host="192.168.0.108", user="sa", pwd="sa", db="ComPrject") def g

  • Python读取Excel数据并生成图表过程解析

    一.需求背景 自己一直在做一个周基金定投模拟,每周需要添加一行数据,并生成图表.以前一直是用Excel实现的.但数据行多后,图表大小调整总是不太方便,一般只能通过缩放比例解决. 二.需求实现目标 通过Python程序读取Excel文件中的数据,生成图表,最好将生成图表生成至浏览器页面,后期数据多之后,也能自动缩放,而不会出现显示不全问题. 三.需求实现代码 # 调用本地echarts.min.js 文件 from pyecharts.globals import CurrentConfig Cu

  • Python读取Excel数据实现批量生成PPT

    目录 背景 需求 准备 PPT数据 PPT模板 实战 导入相关模块 读取电影数据 读取PPT模板插入数据 背景 大家好,我是J哥. 我们常常面临着大量的重复性工作,通过人工方式处理往往耗时耗力易出错.而Python在办公自动化方面具有天然优势,分分钟解决你的办公需求,提前下班不是梦. 需求 前几天我发表了一篇办公自动化文章Python读取Excel数据并批量生成合同,获得许多小伙伴的认可和喜欢.其中有一位粉丝提议,能否出一篇PPT自动化的教程,通过读取Excel数据批量生成幻灯片.于是,我以豆瓣

  • Win10系统下安装labelme及json文件批量转化方法

    一.安装环境:windows10,anaconda3,python3.6 由于框架maskrcnn需要json数据集,在没安装labelme环境和跑深度学习之前,我安装的是anaconda3,其中pyhton是3.7版本的,经网上查阅资料,经过一番查找资料,发现,原来在2019年,TensorFlow还不支持python3.7,所以,迫于无奈,我只能乖乖把python的版本退回到3.6版本,具体步骤也很简单.就是打开anaconda prompt ,然后输入conda install pytho

  • node.js读取Excel数据(下载图片)的方法示例

    前言 因为组织观影活动需要统计报名和收集影评,选择微信小程序"报名工具",管理员下载数据发现影评只是一个图片的URL链接,需要自己手动下载,哪里能难倒程序员? 1. 下载的Excel数据表: 2. 代码: const xlsx = require('xlsx'); const mkdirp = require('mkdirp'); const request = require('request'); const fs = require('fs'); const workbook =

  • 用 Python 定义 Schema 并生成 Parquet 文件详情

    目录 一.简单字段定义 1.定义 Schema 并生成 Parquet 文件 2.验证 Parquet 数据文件 二.含嵌套字段定义 1.验证 Parquet 数据文件 Java 和 Python 实现 Avro 转换成 Parquet 格式, chema 都是在 Avro 中定义的.这里要尝试的是如何定义 Parquet 的Schema, 然后据此填充数据并生成 Parquet 文件. 一.简单字段定义 1.定义 Schema 并生成 Parquet 文件 import pandas as p

  • Asp.net(C#)读取数据库并生成JS文件制作首页图片切换效果(附demo源码下载)

    本文实例讲述了Asp.net(C#)读取数据库并生成JS文件制作首页图片切换效果的方法.分享给大家供大家参考,具体如下: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Text; using System.IO; public partial

  • 用python实现简单EXCEL数据统计的实例

    任务: 用python时间简单的统计任务-统计男性和女性分别有多少人. 用到的物料:xlrd 它的作用-读取excel表数据 代码: import xlrd workbook = xlrd.open_workbook('demo.xlsx') #打开excel数据表 SheetList = workbook.sheet_names()#读取电子表到列表 SheetName = SheetList[0]#读取第一个电子表的名称 Sheet1 = workbook.sheet_by_index(0)

  • 一文秒懂python读写csv xml json文件各种骚操作

    Python优越的灵活性和易用性使其成为最受欢迎的编程语言之一,尤其是对数据科学家而言. 这在很大程度上是因为使用Python处理大型数据集是很简单的一件事情. 如今,每家科技公司都在制定数据战略. 他们都意识到,拥有正确的数据(干净.尽可能多)会给他们带来关键的竞争优势. 数据,如果使用有效,可以提供深层次的.隐藏在表象之下的信息. 多年来,数据存储的可能格式显著增加,但是,在日常使用中,还是以 CSV . JSON 和 XML 占主导地位. 在本文中,我将与你分享在Python中使用这三种流

随机推荐