将接收到的data转为excel保存到桌面

public ActionResult ExportExcel()
{try{string json = Request.Params["data"];DataTable dt = JsonToDataTable(json);string excelname = System.DateTime.Now.ToString("yyyyMMddhhmmss");List<ExportFieldParam> columns = new List<ExportFieldParam>();if (dt.Columns.Contains("噪音数据")) {columns.Add(new ExportFieldParam("传感器", "传感器", 300));columns.Add(new ExportFieldParam("时间", "时间", 150));columns.Add(new ExportFieldParam("值", "值", 40));columns.Add(new ExportFieldParam("单位", "单位", 40));columns.Add(new ExportFieldParam("噪音数据", "噪音数据", 60));}else{columns.Add(new ExportFieldParam("传感器", "传感器", 300));columns.Add(new ExportFieldParam("时间", "时间", 300));columns.Add(new ExportFieldParam("值", "值", 40));columns.Add(new ExportFieldParam("单位", "单位", 40));}string filePath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\" + excelname + ".xls";MemoryStream ms = RenderDataTableToExcel(dt, columns) as MemoryStream;FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write);byte[] data = ms.ToArray();fs.Write(data, 0, data.Length);fs.Flush();fs.Close();data = null;ms = null;fs = null;return File(filePath, "Application/excel", excelname + ".xls");}catch (Exception ex){Console.WriteLine("ExportExcel错误,Exception:" + ex.Message);}return HttpNotFound();}
public static DataTable JsonToDataTable(string strJson)
{//转换json格式strJson = strJson.Replace(",\"", "*\"").Replace("\":", "\"#").ToString();//取出表名   var rg = new Regex(@"(?<={)[^:]+(?=:\[)", RegexOptions.IgnoreCase);string strName = rg.Match(strJson).Value;DataTable tb = null;//去除表名   strJson = strJson.Substring(strJson.IndexOf("[") + 1);strJson = strJson.Substring(0, strJson.IndexOf("]"));//获取数据   rg = new Regex(@"(?<={)[^}]+(?=})");MatchCollection mc = rg.Matches(strJson);for (int i = 0; i < mc.Count; i++){string strRow = mc[i].Value;string[] strRows = strRow.Split('*');//创建表   if (tb == null){tb = new DataTable();tb.TableName = strName;foreach (string str in strRows){var dc = new DataColumn();string[] strCell = str.Split('#');if (strCell[0].Substring(0, 1) == "\""){int a = strCell[0].Length;dc.ColumnName = strCell[0].Substring(1, a - 2);}else{dc.ColumnName = strCell[0];}tb.Columns.Add(dc);}tb.AcceptChanges();}//增加内容   DataRow dr = tb.NewRow();for (int r = 0; r < strRows.Length; r++){try{string a = strRows[r].Split('#')[1].Trim();if (a.Equals("null")){dr[r] = "";}else{dr[r] = strRows[r].Split('#')[1].Trim().Replace(",", ",").Replace(":", ":").Replace("\"", "");}}catch (Exception e){throw e;}}tb.Rows.Add(dr);tb.AcceptChanges();}try{if (tb != null){return tb;}else{throw new Exception("解析错误");}}catch (Exception e){throw e;}
}
protected Stream RenderDataTableToExcel(DataTable SourceTable, List<ExportFieldParam> columns)
{// JavaScriptSerializer serializer = new JavaScriptSerializer();// var columns = serializer.Deserialize<List<ExportFieldParam>>(columnstr);MemoryStream ms = new MemoryStream();NPOI.HSSF.UserModel.HSSFWorkbook workbook = new NPOI.HSSF.UserModel.HSSFWorkbook();NPOI.SS.UserModel.ISheet sheet = workbook.CreateSheet();NPOI.SS.UserModel.IRow headerRow = sheet.CreateRow(0);int columnIndex = 0;for (int i = 0; i < columns.Count; i++){String title = columns[i].title;int width = columns[i].width;sheet.SetColumnWidth(columnIndex, width * 40);headerRow.CreateCell(columnIndex).SetCellValue(title);columnIndex++;}for (int rowIndex = 0; rowIndex < SourceTable.Rows.Count && rowIndex < 65535; rowIndex++){NPOI.SS.UserModel.IRow dataRow = sheet.CreateRow(rowIndex + 1);//第一行是列名//dataRow.Height = (int)((100) * 17);columnIndex = 0;for (int i = 0; i < columns.Count; i++){String field = columns[i].field;String cellValue;if (SourceTable.Rows[rowIndex][field].GetType().FullName == "System.DateTime"){System.DateTime myDateTime = (System.DateTime)SourceTable.Rows[rowIndex][field];cellValue = myDateTime.ToString("yyyy-MM-dd HH:mm:ss");}else{cellValue = SourceTable.Rows[rowIndex][field].ToString();}dataRow.CreateCell(columnIndex).SetCellValue(cellValue);columnIndex++;}}workbook.Write(ms);ms.Flush();ms.Position = 0;sheet = null;headerRow = null;workbook = null;return ms;
}

C#:导出json数据到Excel表格相关推荐

  1. vue中导出json数据为excel表格并保存到本地

    继我上次成功利用vue和elemen把excel的数据导入至前端vue,因为excel表中的数据有些必填项没有填写或者填写错误(比如写错字)所以就要将没有成功导入的数据导出成一份excel表并保存至本 ...

  2. php输出json到表格,Vue如何导出json数据到Excel电子表格方法

    本文主要介绍了Vue导出json数据到Excel电子表格的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考,希望能帮助到大家. 一.安装依赖(前面基本一样) npm install file- ...

  3. Python爬虫项目:爬取JSON数据存储Excel表格与存储图片

    随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战.搜索引擎(Search Engine),例如传统的通用搜索引擎AltaVista,Yahoo!和Googl ...

  4. python获取股票财务报表数据生成excel_(python导出股票数据到excel表格)如何将python输出的内容输入到表格Excel中...

    如何将python输出的内容输入到表格Excel中 假如你还没有数据,手动敲进去一个frame. 你也可以用别的方式入的,网上抓的,都可以. data={'name':['zhangssan','li ...

  5. JS中将 JSON 数据转换为 Excel 表格的详细步骤如下:

    工作中 后端 那为兄弟 用java把execl的数据转为json格式发我了,他问我能不能用js把josn在转为execl格式 然后 我就开始了 项目地址 下载 xlsx 库 在使用 xlsx 库之前, ...

  6. 如何在线快速把json数据转excel表格

    工作中经常会遇到需要把json转成可视化的结构数据,例如excel,否则json数据根本没法阅读,本人工作中之前是把微信好友转出来是json格式,需要转成excel才能方便阅读,这里推荐一个在线转js ...

  7. python 批量查询网页导出结果_python导出网页数据到excel表格-如何使用python将大量数据导出到Excel中的小技巧...

    如何用python把返回的html提取相应的内容到excel 下载扩展库 xlrd 读excle xlwt 写excle 直百度上搜就能下载 下载后使用 import xlrd 就读excle了 打开 ...

  8. php连接excel表格数据类型,TP5 中使用PHPExcel 导出导入数据到excel表格

    将下载好的PHPExcel文件夹放置在框架中的Vendor目录下,注意目录的结构,按照我的代码来基本上直接引用就能使用,如下图: 导出数据代码如下 //导出数据表 开始 public function ...

  9. Vue导出json数据到Excel电子表格

    工作笔记记录 一.安装依赖 npm install file-saver --save npm install xlsx --save npm install script-loader --save ...

  10. 如何在 Vue 中导出数据至 Excel 表格 - 卡拉云

    本文首发:<如何在 Vue 中导出数据至 Excel 表格 - 卡拉云> 我们经常需要在 Vue 搭建的后台管理系统里导出数据到 Excel / CSV ,方便我们将数据共享给其他同学或在 ...

最新文章

  1. COM中的IDL语言的难点之接口指针
  2. java什么叫元素_什么是Java做什么 - 每个元素使它们成为对象类型?
  3. discuz 表结构
  4. 迷惑行为!淘宝上线新版“相亲名片”:上来先告诉相亲对象你花了多少钱?...
  5. NEW RToax logo
  6. Python向下取整整除运算符用法一例
  7. 家用nas的过去现在和未来--2008n年
  8. 第 7 章 Neutron - 073 - Service Plugin / Agent
  9. python字体类型arial_python 更改字体_更改字体名称而不更改默认字体python
  10. 贵州省中职学校计算机教材电子版,中职计算机基础课件贵州省中职学校计算机应用基础教学工作计划.doc...
  11. php万能播放器代码,网页视频播放器程序代码(通用代码)
  12. 【对话系统】Knowledge-Grounded Dialogue Generation with a Unified Knowledge Representation
  13. Python列表基础--仅index()获取元素全部索引
  14. Java学习笔录3(变量和常量)
  15. java servlet 返回404_Servlet返回“HTTP状态404请求的资源(/ servlet)不可用”
  16. android网络诊断服务(ping网络的实现,判断网络是否可用)
  17. Python爬虫实战(2)之爬取NBA球队各个球员头像图片
  18. cad套索选择lisp_怎么将CAD2015,CAD2016的窗交窗口选择框的套索改为矩形吗
  19. 小游戏的processing实现
  20. RISC-V SiFive U54内核——中断和异常详解

热门文章

  1. 12.UNIX 环境高级编程--线程控制
  2. 57. 局域网控制者:Proxy 服务器
  3. 23.PHP的哈希表实现
  4. 2.tcpdump(1)
  5. 7. Simple Product
  6. 59. Event 例子
  7. javascript中的取input对象集合与php中取input数组的区别
  8. chrome浏览器再次打开黑屏一段时间
  9. javaSE(java基础库)私人学习笔记
  10. Android5.0(Lollipop) BLE蓝牙4.0+浅析code(二)