一、上传excel文件,得到InputStream,由InputStream得到Jxl中的Workbook,取出内容,存到二维数组中。

1、使用 Jquery Uploadify 插件(http://www.uploadify.com/ ),得到FileItem,由FileItem得到InputStream。

   String[][] excelContent = getExcelContent(fileItem.getInputStream());

2、将Excel内容存放到二维数组中。

public String[][] getExcelContent(InputStream is) {
try {
Workbook workBook = Workbook.getWorkbook(is);
Sheet sheet = workBook.getSheet(0);
int sheetColumns = sheet.getColumns();
int sheetRows = sheet.getRows();
// excel内容
String[][] excelContent = new String[sheetRows][sheetColumns];
for (int i = 0; i < sheetRows; i++) {
for (int j = 0; j < sheetColumns; j++) {
// 将excel值放入二维数组excelContent中
excelContent[i][j] = sheet.getCell(j, i).getContents();
}
}

二、将二维数组转换成JSON(stringBuffer)格式为:[{"filed1":,"value"},{"filed2":,"value2"}]

stringBuffer = convertToJson(excelContent);

拼字符串花了我很多时间

private static final String QUOTATION_MARKS = "\"";  //双引号
private static final String COMMA = ","; //逗号 public StringBuffer convertToJson(String[][] srcArray) { StringBuffer stringBuffer = new StringBuffer();
boolean first = true;
stringBuffer.append("["); for (int i = 0; i < srcArray.length; i++) {
String[] arrayItem = srcArray[i];
if (!first) {
stringBuffer.append(COMMA);
}
stringBuffer.append("{"); boolean first2 = true;
for (int j = 0; j < arrayItem.length; j++) { if (!first2) {
stringBuffer.append(COMMA);
}
stringBuffer.append(QUOTATION_MARKS + "field" + j
+ QUOTATION_MARKS + ":\"" + arrayItem[j]
+ QUOTATION_MARKS);
first2 = false;
}
stringBuffer.append("}");
first = false;
} stringBuffer.append("]");
return stringBuffer; }

 三、生成可用于DataGrid加载的Json格式,即 {"total":n,"rows":[{"filed1":,"value"},{"filed2":,"value2"}]}。

sheetRows = excelContent.length;
sheetColumns = excelContent[0].length; StringBuffer stringBuffer2 = new StringBuffer("");
stringBuffer2.append("{");
stringBuffer2.append(QUOTATION_MARKS + "total"
+ QUOTATION_MARKS + ":" + sheetRows + COMMA
+ QUOTATION_MARKS + "rows" + QUOTATION_MARKS + ":");
stringBuffer2.append(stringBuffer);
stringBuffer2.append("}");

http://bbs.csdn.net/topics/390395096

使用jxl读取excel内容,并转换成Json,用于Datagrid的更多相关文章

  1. 分享一个小工具:Excel表高速转换成JSON字符串

    在游戏项目中一般都须要由策划制作大量的游戏内容,当中非常大一部分是使用Excel表来制作的.于是程序就须要把Excel文件转换成程序方便读取的格式. 之前项目使用的Excel表导入工具都是通过Offi ...

  2. JAVA利用jxl读取Excel内容

    JAVA可以利用jxl简单快速的读取文件的内容,但是由于版本限制,只能读取97-03  xls格式的Excel. import java.io.File; import java.io.FileInp ...

  3. C#读取数据库内容并转换成xml文件

    OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\bi ...

  4. C# Excel转换成Json工具(含源码)

    可执行版本下载:https://github.com/neil3d/excel2json/releases 完整项目源代码下载:https://github.com/neil3d/excel2json ...

  5. python如何转换word格式、读取word内容、转成html

    # python如何转换word格式.读取word内容.转成html? import docx from win32com import client as wc # 首先将doc转换成docx wo ...

  6. 【游戏开发】Excel表格批量转换成lua的转表工具

    一.简介 在上篇博客<[游戏开发]Excel表格批量转换成CSV的小工具> 中,我们介绍了如何将策划提供的Excel表格转换为轻便的CSV文件供开发人员使用.实际在Unity开发中,很多游 ...

  7. EasyExcel 轻松灵活读取Excel内容

    写在前面 Java 后端程序员应该会遇到读取 Excel 信息到 DB 等相关需求,脑海中可能突然间想起 Apache POI 这个技术解决方案,但是当 Excel 的数据量非常大的时候,你也许发现, ...

  8. POI读取Excel内容格式化

    在用POI读取Excel内容时,经常会遇到数据格式化的问题. 比如:数字12365会变为12365.0;字符串数字123也会变为123.0,甚至会被变为科学计数法.另外日期格式化也是一个头疼的问题.其 ...

  9. C# 读取Excel内容

    一.方法 1.OleD方法实现该功能. 2.本次随笔内容只包含读取Excel内容,并另存为. 二.代码 (1)找到文档代码 OpenFileDialog openFile = new OpenFile ...

随机推荐

  1. FileUtils 文件下载 文件导出

    public class FileUtils { /// <summary> /// 文件下载 /// </summary> /// <param name=" ...

  2. 简单好用的表单校验插件——jQuery Validate基本使用方法总结

    jquery validate当前最新版本是1.17.0,下载链接是:https://github.com/jquery-validation/jquery-validation/releases/t ...

  3. linux下利用httpd搭建tomcat集群,实现负载均衡

    公司使用运营管理平台是单点tomcat,使用量大,或者导出较大的运营数据时,会造成平台不可用,现在需要搭建tomcat集群,调研后,决定使用apache的httpd来搭建tomcat集群.以下是搭建步 ...

  4. oracle查询分区表中的数据

    select * from TABLE_NAME partition(分区名) T WHERE T.COL_NAME= 'XX';

  5. loj #2305. 「NOI2017」游戏

    #2305. 「NOI2017」游戏 题目描述 小 L 计划进行 nnn 场游戏,每场游戏使用一张地图,小 L 会选择一辆车在该地图上完成游戏. 小 L 的赛车有三辆,分别用大写字母 AAA.BBB. ...

  6. Java面向对象之异常(异常处理方式)

    一.基础概念 (1)异常:Java程序在运行时期发生的不正常情况. Java就按照面向对象的思想对不正常情况进行描述和对象的封装. (2)异常问题分类: (Throwable:定义对于问题共性的功能. ...

  7. Tensorflow的认识

    1.基本概念(Tensorflow) 使用图(graphs)来表示计算任务 n 在被称之为会话(Session)的上下文(context)中执行图 n 使用tensor表示数据 n 通过变量(Vari ...

  8. 【数据结构】单链表&&静态链表详解和代码实例

    喜欢的话可以扫码关注我们的公众号哦,更多精彩尽在微信公众号[程序猿声] 01 单链表(Singly Linked List ) 1.1 什么是单链表? 单链表是一种链式存储的结构.它动态的为节点分配存 ...

  9. 月薪3万+的大数据人都在疯学Flink,为什么?

    身处大数据圈近5年了,在我的概念里一直认为大数据最牛的两个东西是Hadoop和Spark.18年下半年的时候,我突然发现身边很多大数据牛人都是研究学习Flink,甚至连Spark都大有被冷落抛弃的感觉 ...

  10. python wraps装饰器

    这是一个很有用的装饰器.看过前一篇反射的朋友应该知道,函数是有几个特殊属性比如函数名,在被装饰后,上例中的函数名foo会变成包装函数的名字 wrapper,如果你希望使用反射,可能会导致意外的结果.这 ...