一种json文件转换为excel文件的方法及装置的制造方法_2

文档序号:9396844阅读:来源:国知局
的数据,该方法充分利用了 JSON文件的数组特性,将待 生成的EXCEL文件属性和工作表数据以数组形式携带于JSON文件中,其中,一个工作表 Worksheet对应一个对象实体中的数据信息,该实现方法简单易操作,大大简化了将生成 EXCEL文件的过程和降低了生成EXCEL文件的难度。
[0050] 下面结合具体实施例,对本申请提供的方法做详细说明,如下所示,为JSON文件 具体内容:
[0051] CN 105117378 A 兄明 5/11 页

CN 105117378 A 说明书 7/11 页
[0054] 整个JSON文件,分为一个"对象头信息"和若干个"对象实体信息",其中对象头 信息中包含了将要生成的EXCEL文件的属性信息,若干个对象实体信息包含了将要生成的 EXCEL文件中的若干个工作表的Worksheet的数据信息。
[0055] 在步骤103中,当服务器接收到JSON的基本元素信息后,将基本元素信息中的数 据信息按照EXCEL文件的排版格式进行排版并获取排版结果
[0056] 较优地,一个对象实体信息中的数据信息包含多个对象数组,每个对象数组对应 一个工作表Worksheet的一行;
[0057] 所述将所述数据信息按照EXCEL文件的排版格式进行排版并获取排版结果,包 括:
[0058] 将多个对象数组中的第一对象数组排版为所述第一对象数组所属的对象实体信 息所对应的Worksheet的一行。
[0059] 下面以上述JSON文件为例,对将JSON文件按照EXCEL文件的排版格式进行排版 的过程进行详细说明。
[0060] 其中,JSON文件的' file_info'是JSON对象数组,代表一个对象头信息,本申请 中,将对象头信息里面的成员('名称/值'对)表示要生成Excel文件的属性。
[0061] 在上述例子中,属性信息分别是:
[0062] Excel 生成路径"xlsx_path": "/usr/mpsp";
[0063] Excel 文件名"xlsx_file": "abc. xlsx";
[0064] Excel 输出方式"out_type": "ftp"。
[0065] 上述对象数组' file_info'在实际应用中,还可以包含其它的属性信息,本发明不 做具体限定。
[0066] JSON文件的"sheetl-对账概要〃,代表一个对象实体信息,该对象实体对应 的EXCEL文件名称为"对账概要"。本申请中,该对象实体信息对应一个Excel的工作表 Worksheet,该对象实体信息" sheetl-对账概要"包含多个对象数组,其中每个数组表示了 对应的EXCEL文件工作表Worksheet的一行数据。
[0067] 以上面文件为例,其中ΓΓ: 〃序号〃,〃2〃:〃总计金额〃}表示对象实体信 息" sheetl-对账概要"的第一个数组,其表示对应的EXCEL文件工作表"对账概要"的第一 行数据由2个字段组成,其中第一字段为〃序号〃,第二个字段为〃总计金额〃,并且第一行 数据有着特殊的含义,其表示该对象实体信息对应的EXCEL的工作表的列属性信息。
[0068] 接下来,对象实体信息"sheetl-对账概要"中除第一个数组之外的若干个数组,表 示工作表" sheetl-对账概要"的若干行具体数据信息,以上述文件为例:
[0069] ΓΓ:〃Γ,〃2〃:〃100· 00〃},这个数组代表工作表"对账概要"第一行数据,为" 1, 100. 00" ;
[0070] ΓΓ: 〃2〃,〃2〃: 〃200. 00〃},这个数组代表工作表"对账概要"第二行数据,为" 2, 200. 00" ;
[0071] 因此,读取对象实体信息"Sheetl-对账概要"中的数据信息后,排版得到的工作表 "对账概要"的数据内容如表2所示:
[0073] 表2工作表"对账概要"对应的数据内容^
[0074] 重复上面排版方式,我们得出第二个工作表"对账明细"如表3所示:
[0076] 表3工作表"对账明细"对应的数据内容
[0077] 在步骤104中,可调用C++语言函数库将步骤103中得到的EXCEL文件排版结果 生成EXCEL文件。在步骤102中获取的基本元素信息中还包含有EXCEL文件的属性信息, 所述EXCEL文件的属性信息包含EXCEL文件的路径信息,EXCEL文件名,Worksheet名称;
[0078] 所述调用C++语言函数库将所述获取的排版结果生成EXCEL文件,包括:
[0079] 根据所述EXCEL文件的路径信息及所述EXCEL文件名,创建EXCEL对象;
[0080] 根据所述EXCEL对象及所述Worksheet名称,创建Worksheet对象;
[0081] 根据所述EXCEL文件的数据信息,设置与所述Worksheet对象对应的Worksheet。
[0082] 由于C++函数可实现在不同的平台下运行,如可运行与LINUX或者WINDOWS平台 下,因此通过调用C++函数库将排版好的EXCEL文件转换为EXCEL文件的方式,具有很好的 跨平台性和良好的性能。
[0083] 下面对如何调用C++函数将排版好的EXCEL文件转换为EXCEL文件做详细的说 明。
[0084] 第一步,创建Excel对象。
[0085] 例如:lxw_workbook*workbook = new_workbook (路径文件名);
[0086] 根据EXCEL文件属性信息中的路径文件名创建一个EXCEL文件对象workbook。例 如,在本申请实施例中,生成的EXCEL文件的名称为〃abc. xlsx",存储路径为〃/usr/mpsp〃。
[0087] 第二步,设置Excel文件中若干个Worksheet。
[0088] 例如:lxw_worksheet*worksheet = workbook_add_worksheet (workbook, 〃对账 概要;
[0089] 根据第一步中生成的EXCEL文件对象workbook以及EXCEL工作表名"对账概要" 生成第一张工作表对象worksheet,该工作表对象对应的工作表的名称为"对账概要"。
[0090] 第三步,设置worksheet中每一列的属性和名称。
[0091] 例如,设置工作表"对账概要"中的第一个属性"序号"的名称,方式如下:
[0092] //设置列的属性信息,将单元格设置的列宽度设置为15
[0093] worksheet_set_column(worksheet, 0, 0, 15, NULL, NULL);
[0094] //设置列名称为"所属机构"
[0095] worksheet_write_string (worksheet, 0, 0,"序号,format);
[0096] 第四步,设置worksheet中每一行中各列的值。
[0097] worksheet_write_string (worksheet〗,i,j,json 元素数据,NULL) 〇
[0098] 例如,设置第二行第一列的数据,则调用函数具体为:worksheet_write_ string (worksheet2, I, 0, I, NULL) 〇
[0099] 通过以上步骤即实现了调用C++函数将排版好的EXCEL格式的文件转换为EXCEL 文件。
[0100] 较优地,在所述调用C++语言函数库将所述获取的排版结果生成EXCEL文件之后, 还包括:
[0101] 将所述生成的EXCEL文件进行加密后返回给所述客户端;或者
[0102] 将所述生成的EXCEL文件存储在预先设定的地址,以及向客户端返回EXCEL文件 转换成功的消息。
[0103] 在上述方法中,若客户端需要以同步的方式EXCEL文件,即将JSON文件转换为 EXCEL文件后需要立即发送给客户端,此时,可以首先将生成好的EXCEL文件经过base64编 码加密,将编码后的文件以JSON文件的形式发送客户端,客户端在接收到该JSON文件后, 只要进行base64的解码,即可以得到生成好的EXCEL文件,该方法通过base64加密处理 后,有利于数据安全以及减小数据传送量,提高了客户端与服务器数据传输的安全性和效 率。
[0104] 另外,若客户端不要求服务器以同步方式返回数据,则可以以异步方式返回,具 体地,可以首先将生成好的EXCEL文件存储在预先设定的地址,预先设定的地址是携带于 JSON文件的对象头信息中发送给服务器的,预先设定的地址可以是某个共享目录、FTP目 录、消息队列或者是数据库中,然后向客户端返回EXCEL文件转换成功的消息。当客户端需 要获取该EXCEL文件时,可从该EXCEL文件存储的地址中以WEB形式获取该EXCEL文件,该 方式不要求实时返回EXCEL数据,当EXCEL文件较大时,可用此方法,具有更好的性能。
[0105] 本申请实施例提供的方法,服务器接收客户端发送的HTTP请求,根据该请求中包 含JSON文件,然后读取所述JSON文件中的基本元素信息,并将基本元素信息中的数据信息 按照EXCEL文件的排版格式进行排版并获取排版结果,然后调用C++语言函数库将该排版 结果生成EXCEL文件。该方法中通过接收客户端发送的HTTP请求,即通过API接口实现调 用而不依赖于第三方的虚拟机、应用服务器或程序库,具有最小的系统依赖性,容易部署, 简单小巧,因此具有很好的跨平台能力,并发能力以及便捷性;同时,由于JSON文件的数组 格式,使得JSON文件的数据信息进行EXCEL文件格式排版操作简单;也使得排版结果可适 用于调用C++语言函数。
[0106] 基于相同的发明构思,如图2所示,本申请还提供了一种JOSN文件转换为EX
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1