NPOI:http://npoi.codeplex.com/

LitJson:https://code.google.com/p/litjsonmd/downloads/list

using System.Data;
using System.IO;
using NPOI.SS.UserModel;
using System.Text;/// <summary>
/// 获取json字符串的类
/// </summary>
public class GetJson
{/// <summary>/// 得到DataTable的方法/// </summary>/// <param name="filePath">传入Excel所在的路径</param>/// <param name="tableName">传入Table的name</param>/// <returns></returns>public static DataTable GetTable(string filePath, string tableName){DataTable table = new DataTable(tableName);if (File.Exists(filePath)){using (FileStream fStream = File.OpenRead(filePath)){IWorkbook workBook = WorkbookFactory.Create(fStream);ISheet sheet1 = workBook.GetSheetAt(0);IRow headRow = sheet1.GetRow(0);int cellCount = headRow.LastCellNum;for (int m = headRow.FirstCellNum; m < cellCount; m++){string headCellValue = headRow.GetCell(m).StringCellValue;table.Columns.Add(headCellValue);}int rowCount = sheet1.LastRowNum;for (int i = (sheet1.FirstRowNum + 1); i < rowCount + 1; i++){DataRow dataRow = table.NewRow();IRow row = sheet1.GetRow(i);for (int j = row.FirstCellNum; j < cellCount; j++){if (row.GetCell(j) != null)dataRow[j] = row.GetCell(j).ToString();}table.Rows.Add(dataRow);}}}return table;}/// <summary>/// 得到json字符串的类/// </summary>/// <param name="dt">传入要生成json字符串的Table</param>/// <returns></returns>public static string GetJsonStr(DataTable dt){StringBuilder jsonBuilder = new StringBuilder();int count = dt.Rows.Count;if (count != 0){jsonBuilder.Append("{");jsonBuilder.Append("\'");//for (int j = 0; j < dt.Columns.Count; j++)//{//    jsonBuilder.Append(dt.Rows[i][0].ToString());//    break;//}
            jsonBuilder.Append(dt.TableName);jsonBuilder.Append("\'");jsonBuilder.Append(":");jsonBuilder.Append("[");for (int i = 0; i < dt.Rows.Count; i++){//jsonBuilder.Append("\'");//for (int j = 0; j < dt.Columns.Count; j++)//{//    jsonBuilder.Append(dt.Rows[i][0].ToString());//    break;//}//jsonBuilder.Append("\'");//jsonBuilder.Append(":");jsonBuilder.Append("{");for (int j = 0; j < dt.Columns.Count; j++){jsonBuilder.Append("");jsonBuilder.Append("\'");jsonBuilder.Append(dt.Columns[j].ColumnName);jsonBuilder.Append("\'");jsonBuilder.Append(":");if (!IsNum(dt.Rows[i][j].ToString())){jsonBuilder.Append("\'" + dt.Rows[i][j].ToString() + "\'");}else{jsonBuilder.Append(dt.Rows[i][j].ToString());}jsonBuilder.Append(",");}jsonBuilder.Remove(jsonBuilder.Length - 1, 1);jsonBuilder.Append("},");}jsonBuilder.Remove(jsonBuilder.Length - 1, 1);jsonBuilder.Append("]");jsonBuilder.Append("}");return jsonBuilder.ToString();}else{return null;}}/// <summary>/// 判断是否为数字/// </summary>/// <param name="number">要判断的string字符串</param>/// <returns>true/false</returns>private static bool IsNum(string number){try{for (int i = 0; i < number.Length; i++){if (!char.IsNumber(number, i)){return false;}}return true;}catch{return false;}}
}

转载于:https://www.cnblogs.com/HelloUnity/p/NPOI%e8%af%bb%e5%8f%96Excel%e7%94%9f%e6%88%90DataTable%e8%bd%ac%e4%b8%baJson%e5%90%8e%e5%88%a9%e7%94%a8LitJons%e8%af%bb%e5%8f%96.html

NPOI读取Excel生成DataTable转为Json后利用LitJons读取相关推荐

  1. python 实现读取excel中的所有sheet后,增加新的sheet,生成新的excel文件

    python 实现读取excel中的所有sheet后,增加新的sheet,生成新的excel文件 import pandas as pd import osPath = r"C:\Users ...

  2. python3读写excel文件_python3 循环读取excel文件并写入json操作

    文件内容: excel内容: 代码: import xlrd import json import operator def read_xlsx(filename): # 打开excel文件 data ...

  3. python循环读取excel存入列表_python3 循环读取excel文件并写入json操作

    文件内容: excel内容: 代码: import xlrd import json import operator def read_xlsx(filename): # 打开excel文件 data ...

  4. java代码里的JSON格式怎么写好看_python3 循环读取excel文件并写入json操作

    文件内容: excel内容: 代码: import xlrdimport jsonimport operatordef read_xlsx(filename): # 打开excel文件 data1 = ...

  5. 二维数组转为json后,ajax这边拼接成表格 要循环??具体怎么写了 ,,

    二维数组转为json后,ajax这边拼接成表格     要循环??具体怎么写了 ,,

  6. 解决Python中TCP数据转为json后中文变为Ascii码的问题

    我们我们有时候会使用TCP直接传输JSON数据,这时候正确解析数据就很关键了,最近在使用Python解析TCP传输的JSON数据时就遇到了中文不能正常显示的问题. 原因分析 TCP接口数据转为json ...

  7. python读excel并写入_python3 循环读取excel文件并写入json操作

    文件内容: excel内容: 代码: import xlrd import json import operator def read_xlsx(filename): # 打开excel文件 data ...

  8. js node.js读取excel文件返回为json文本

    node-xlsx: 基于Node.js解析excel文件数据及生成excel文件:只支持xlsx xlsx: 基于Node.js解析excel文件数据及生成excel文件:只支持xlsx excel ...

  9. python绘制表格界面_python 读取 excel 生成 html 页面

    前言 有天老板找我到办公室跟我说要做一个商城,商城卖出去东西就有佣金可以拿.我听着就头大.老板打开电脑给我看了网站:你看一下这个网站,照着它的流程就可以拥有一个商城了.我靠过去一看,大概了解一下:原来 ...

最新文章

  1. android 之 Intent、broadcast
  2. 现在,Serverless 真的已经成熟了吗?
  3. SAP MM 采购ERP顾问咨询费限制总金额的框架协议实现方案
  4. mysql navicat编码保持一致不乱码
  5. bert 中文 代码 谷歌_如何用最强模型BERT做NLP迁移学习?
  6. C程序优化之路(二)
  7. 工作170:删除做个判断操作 成功删除 取消取消
  8. 顶级程序员的心得–Coders at Work
  9. php中define的参数_php中define的用法有哪些
  10. java pdf 类库_有哪些可以给pdf加水印,java第三方开源类库?
  11. Docker初级选手(一)
  12. 13.13. ERROR 1364: 1364: Field 'id' doesn't have a default value
  13. libgdx for eclipse开发环境搭建
  14. 用打印服务器打印打印机显示脱机,菜鸟也专业 打印机脱机故障处理方法
  15. PS画直线虚线及图形虚线
  16. 安全产品的部署方式及位置
  17. 小试牛刀__GAN实战项目之mnist数据集(二)
  18. 大数据技术——Azkaban(阿兹卡班)
  19. 2023华东理工科技大学计算机考研信息汇总
  20. MYS-6ULX-IOT 开发板测评——Yocto 创建嵌入式 Linux 发行版

热门文章

  1. JS限制表单输入特效代码
  2. 取数函数设置向导返回值说明
  3. 牌类游戏使用微服务重构笔记(八): 游戏网关服务器
  4. 什么是跨域及跨域请求资源的方法?
  5. Windows平台下kafka环境的搭建
  6. 自动加密企业关键业务数据 赛门铁克推出全新信息保护解决方案
  7. 制作 Windows8   to Go
  8. 字符串替换方法的优劣
  9. Windows2003+SQL2000的集群安装手册
  10. docker部署flask_使用Docker,GCP Cloud Run和Flask部署Scikit-Learn NLP模型