第三方库,附件
缺点:该库只支持.xls文件的操作


1、读取excel文件


例子:
  1. try {
  2. /**
  3. * 后续考虑问题,比如Excel里面的图片以及其他数据类型的读取
  4. **/
  5. InputStream is = new FileInputStream(path);
  6. Workbook book = Workbook.getWorkbook(is);
  7. int num = book.getNumberOfSheets();
  8. publishProgress("the num of sheets is " + num+ "\n");
  9. if (num <2) {
  10. return -2;
  11. }
  12. // 获得第一个工作表对象:时间,电流值
  13. Sheet sheet = book.getSheet(0);
  14. int Rows = sheet.getRows();
  15. int Cols = sheet.getColumns();
  16. publishProgress("the name of sheet 1 is " + sheet.getName() + "\n");
  17. publishProgress("total rows is " + Rows + "\n");
  18. publishProgress("total cols is " + Cols + "\n");
  19. if (Cols != 2) {
  20. publishProgress("第一个工作表格式错误,第一列为时间(13位时间戳),第二列为电流值,导入停止");
  21. return -2;
  22. }
  23. for (int i = 0; i < Rows; i++) {
  24. String str1 = sheet.getCell(0,i).getContents();
  25. if (str1 == null || str1.isEmpty() || str1.length()!=13) {
  26. continue;
  27. }
  28. long longStr1 = -1L;
  29. try {
  30. longStr1 = Long.parseLong(str1);
  31. } catch (Exception e) {
  32. }
  33. String str2 = sheet.getCell(1,i).getContents();
  34. if (str2 == null || str2.isEmpty()) {
  35. continue;
  36. }
  37. float floatStr2 = -2F;
  38. try {
  39. floatStr2 = Float.parseFloat(str2);
  40. } catch (Exception e) {
  41. }
  42. if (longStr1 == -1 || floatStr2 == -2F) {
  43. continue;
  44. }
  45. publishProgress("contents:" + longStr1+","+ floatStr2 + "\n");
  46. //插入血糖
  47. GlucoseData vData = new GlucoseData();
  48. vData.setGlucoseElecValue(floatStr2);
  49. vData.setGlucoseTime(new Date(longStr1));
  50. vData.setGlucoseValue(-1F);
  51. vDataDao.insert(vData);
  52. }
  53. // 获得第二个工作表对象:时间,血糖值
  54. sheet = book.getSheet(1);
  55. Rows = sheet.getRows();
  56. Cols = sheet.getColumns();
  57. publishProgress("the name of sheet 2 is " + sheet.getName() + "\n");
  58. publishProgress("total rows is " + Rows + "\n");
  59. publishProgress("total cols is " + Cols + "\n");
  60. if (Cols != 2) {
  61. publishProgress("第二个工作表格式错误,第一列为时间(13位时间戳),第二列为参比血糖值,导入停止");
  62. return -2;
  63. }
  64. for (int i = 0; i < Rows; i++) {
  65. String str1 = sheet.getCell(0,i).getContents();
  66. if (str1 == null || str1.isEmpty() || str1.length()!=13) {
  67. continue;
  68. }
  69. long longStr1 = -1L;
  70. try {
  71. longStr1 = Long.parseLong(str1);
  72. } catch (Exception e) {
  73. }
  74. String str2 = sheet.getCell(1,i).getContents();
  75. if (str2 == null || str2.isEmpty()) {
  76. continue;
  77. }
  78. float floatStr2 = -2F;
  79. try {
  80. floatStr2 = Float.parseFloat(str2);
  81. } catch (Exception e) {
  82. }
  83. if (longStr1 == -1 || floatStr2 == -2F) {
  84. continue;
  85. }
  86. publishProgress("contents:" + longStr1+","+ floatStr2 + "\n");
  87. //插入血糖
  88. GlucoseRefData vData = new GlucoseRefData();
  89. vData.setGlucoseRefValue(floatStr2);
  90. vData.setGlucoseRefTime(new Date(longStr1));
  91. vGlucoseRefData.insert(vData);
  92. }
  93. book.close();
  94. publishProgress("完成数据导入\n");
  95. return 0;
  96. } catch (Exception e) {
  97. publishProgress(e.toString());
  98. return -1;
  99. }

2、生成Excel
  1. try {
  2. // 创建或打开Excel文件
  3. WritableWorkbook book = Workbook.createWorkbook(new File(mResultPath));
  4. // 生成名为“第一页”的工作表,参数0表示这是第一页
  5. WritableSheet sheet1 = book.createSheet("result", 0);
  6. List<GlucoseData> vList = vDataDao.loadAll();
  7. if (vList!=null) {
  8. for (int i = 0; i < vList.size(); i++) {
  9. jxl.write.Number number2 = new jxl.write.Number(0, i,vList.get(i).getGlucoseTime().getTime());
  10. sheet1.addCell(number2);
  11. jxl.write.Number number3 = new jxl.write.Number(1, i,vList.get(i).getGlucoseElecValue());
  12. sheet1.addCell(number3);
  13. jxl.write.Number number = new jxl.write.Number(2, i,vList.get(i).getGlucoseValue());
  14. sheet1.addCell(number);
  15. }
  16. }
  17. // 写入数据并关闭文件
  18. book.write();
  19. book.close();
  20. } catch (Exception e) {
  21. Log.d("algorithm", "WritableWorkbook exception: "+e.toString());
  22. publishProgress("WritableWorkbook exception: "+e.toString());
  23. return -3;
  24. }

附件列表

读取并创建excel文件(.xls)的更多相关文章

  1. 【转】Python xlrd、xlwt、xlutils读取、修改Excel文件

    Python xlrd.xlwt.xlutils读取.修改Excel文件 一.xlrd读取excel 这里介绍一个不错的包xlrs,可以工作在任何平台.这也就意味着你可以在Linux下读取Excel文 ...

  2. Java Struts2 POI创建Excel文件并实现文件下载

    Java Struts2 POI创建Excel文件并实现文件下载2013-09-04 18:53 6059人阅读 评论(1) 收藏 举报 分类: Java EE(49) Struts(6) 版权声明: ...

  3. Java中使用POI读取大的Excel文件或者输入流时发生out of memory异常参考解决方案

    注意:此参考解决方案只是针对xlsx格式的excel文件! 背景 前一段时间遇到一种情况,服务器经常宕机,而且没有规律性,查看GC日志发生了out of memory,是堆溢出导致的,分析了一下堆的d ...

  4. Jxl创建Excel文件和解析Excel文件

    import java.io.File; import jxl.Workbook; import jxl.write.Label; import jxl.write.WritableSheet; im ...

  5. NPOI 2.0 创建Excel文件

    如果只是简单的处理的话,只需要引用下载压缩包里的 NPOI.dll (office 2003)或 NPOI.OOXML.dll (office 2007) 文件而已. using System; us ...

  6. C#创建Excel文件并将数据导出到Excel文件

    工具原料: Windows 7,Visual Studio 2010, Microsoft Office 2007 创建解决方案 菜单>新建>项目>Windows窗体应用程序: 添加 ...

  7. c++ 读取并解析excel文件方法

    用Cocos开发模型特效工具编辑器,跨Mac和windows,当中有个需求是读取并解析excel文件,但网上的查找的例子几乎都只能是在windows下面使用,再或者是命令行脚本之类的.于是,自己写了一 ...

  8. C# 读取CSV和EXCEL文件示例

    我们习惯了直接连到数据库上面读取数据表的数据内容: 如果有一天我们需要读取CSV,EXCEL文件的内容的时候,可不可以也像读数据表的方式一样呢?当然可以,使用OleDB ADO.NET是很简单的事情 ...

  9. java读取excel文件(.xls,xlsx,csv)

    前提,maven工程通过poi读写excel文件,需要在pom.xml中配置依赖关系: 在<dependencies>中添加如下代码 <dependency> <grou ...

随机推荐

  1. Sublime Text3开发工具安装emmet插件

    第一步:Sublime Text导入Package Control 自动安装: 1.打开Sublime Text -->View --> Show Console 菜单打开控制台 2.粘贴 ...

  2. Asp.Net Web API 2 官网菜鸟学习系列导航[持续更新中]

    详情请查看http://aehyok.com/Blog/Detail/67.html 个人网站地址:aehyok.com QQ 技术群号:206058845,验证码为:aehyok 本文文章链接:ht ...

  3. ASP.NET WebAPI 生成帮助文档与使用Swagger服务测试

    帮助HELP 要实现如WCF中的Help帮助文档,Web API 2 中已经支持很方便的实现了这一特性  http://www.asp.net/web-api/overview/creating-we ...

  4. javascript中的call()和apply()方法的使用

    1.方法定义 call方法: 语法:call([thisObj[,arg1[, arg2[,   [,.argN]]]]]) 定义:调用一个对象的一个方法,以另一个对象替换当前对象. 说明: call ...

  5. Server Develop (六) Linux epoll总结

    Linux  epoll epoll是Kernel 2.6后新加入的事件机制,在高并发条件下,远优于select.epoll最大的好处在于它不会随着监听fd数目的增长而降低效率.因为在内核中的sele ...

  6. [新概念51单片机C语言教程·郭天祥] 1、 基础知识必备

    目录: 单片机的大致介绍         1-1.通俗定义         1-2.51系列产品         1-3.标号意思         1-4.引脚介绍         1-5.用C语言开 ...

  7. 如何在ASP.NET中用C#将XML转换成JSON

    本文旨在介绍如果通过C#将获取到的XML文档转换成对应的JSON格式字符串,然后将其输出到页面前端,以供JavaScript代码解析使用.或许你可以直接利用JavaScript代码通过Ajax的方式来 ...

  8. paip.解决 数据库mysql增加列 字段很慢添加字段很慢

    paip.解决 数据库mysql增加列 字段很慢添加字段很慢 #环境如下: mysql5.6    数据仅仅3w alter table xxx add column yyy int default ...

  9. HTML5骨骼动画Demo | 使用min2d、createjs、pixi播放spine动画

    Spine做骨骼动画是比较流行的,使用起来可能相对复杂,但功能毕竟强大,所以市场占有率较大. 在unity.cocos2d.starling中使用spine已经很成熟了,而HTML5这一块可能刚刚起步 ...

  10. Struts2入门3 深入学习

    Struts2入门3 深入学习 处理结果和异常 前言: Struts学习的差不多了,还有最后的一点就收官了就是结果处理和异常处理.前面学习Struts主要围绕就是Action以及struts.xml配 ...