读取并创建excel文件(.xls)
1、读取excel文件
try {
/**
* 后续考虑问题,比如Excel里面的图片以及其他数据类型的读取
**/
InputStream is = new FileInputStream(path);
Workbook book = Workbook.getWorkbook(is);
int num = book.getNumberOfSheets();
publishProgress("the num of sheets is " + num+ "\n");
if (num <2) {
return -2;
}
// 获得第一个工作表对象:时间,电流值
Sheet sheet = book.getSheet(0);
int Rows = sheet.getRows();
int Cols = sheet.getColumns();
publishProgress("the name of sheet 1 is " + sheet.getName() + "\n");
publishProgress("total rows is " + Rows + "\n");
publishProgress("total cols is " + Cols + "\n");
if (Cols != 2) {
publishProgress("第一个工作表格式错误,第一列为时间(13位时间戳),第二列为电流值,导入停止");
return -2;
}
for (int i = 0; i < Rows; i++) {
String str1 = sheet.getCell(0,i).getContents();
if (str1 == null || str1.isEmpty() || str1.length()!=13) {
continue;
}
long longStr1 = -1L;
try {
longStr1 = Long.parseLong(str1);
} catch (Exception e) {
}
String str2 = sheet.getCell(1,i).getContents();
if (str2 == null || str2.isEmpty()) {
continue;
}
float floatStr2 = -2F;
try {
floatStr2 = Float.parseFloat(str2);
} catch (Exception e) {
}
if (longStr1 == -1 || floatStr2 == -2F) {
continue;
}
publishProgress("contents:" + longStr1+","+ floatStr2 + "\n");
//插入血糖
GlucoseData vData = new GlucoseData();
vData.setGlucoseElecValue(floatStr2);
vData.setGlucoseTime(new Date(longStr1));
vData.setGlucoseValue(-1F);
vDataDao.insert(vData);
}
// 获得第二个工作表对象:时间,血糖值
sheet = book.getSheet(1);
Rows = sheet.getRows();
Cols = sheet.getColumns();
publishProgress("the name of sheet 2 is " + sheet.getName() + "\n");
publishProgress("total rows is " + Rows + "\n");
publishProgress("total cols is " + Cols + "\n");
if (Cols != 2) {
publishProgress("第二个工作表格式错误,第一列为时间(13位时间戳),第二列为参比血糖值,导入停止");
return -2;
}
for (int i = 0; i < Rows; i++) {
String str1 = sheet.getCell(0,i).getContents();
if (str1 == null || str1.isEmpty() || str1.length()!=13) {
continue;
}
long longStr1 = -1L;
try {
longStr1 = Long.parseLong(str1);
} catch (Exception e) {
}
String str2 = sheet.getCell(1,i).getContents();
if (str2 == null || str2.isEmpty()) {
continue;
}
float floatStr2 = -2F;
try {
floatStr2 = Float.parseFloat(str2);
} catch (Exception e) {
}
if (longStr1 == -1 || floatStr2 == -2F) {
continue;
}
publishProgress("contents:" + longStr1+","+ floatStr2 + "\n");
//插入血糖
GlucoseRefData vData = new GlucoseRefData();
vData.setGlucoseRefValue(floatStr2);
vData.setGlucoseRefTime(new Date(longStr1));
vGlucoseRefData.insert(vData);
}
book.close();
publishProgress("完成数据导入\n");
return 0;
} catch (Exception e) {
publishProgress(e.toString());
return -1;
}
try {
// 创建或打开Excel文件
WritableWorkbook book = Workbook.createWorkbook(new File(mResultPath));
// 生成名为“第一页”的工作表,参数0表示这是第一页
WritableSheet sheet1 = book.createSheet("result", 0);
List<GlucoseData> vList = vDataDao.loadAll();
if (vList!=null) {
for (int i = 0; i < vList.size(); i++) {
jxl.write.Number number2 = new jxl.write.Number(0, i,vList.get(i).getGlucoseTime().getTime());
sheet1.addCell(number2);
jxl.write.Number number3 = new jxl.write.Number(1, i,vList.get(i).getGlucoseElecValue());
sheet1.addCell(number3);
jxl.write.Number number = new jxl.write.Number(2, i,vList.get(i).getGlucoseValue());
sheet1.addCell(number);
}
}
// 写入数据并关闭文件
book.write();
book.close();
} catch (Exception e) {
Log.d("algorithm", "WritableWorkbook exception: "+e.toString());
publishProgress("WritableWorkbook exception: "+e.toString());
return -3;
}
附件列表
读取并创建excel文件(.xls)的更多相关文章
- 【转】Python xlrd、xlwt、xlutils读取、修改Excel文件
Python xlrd.xlwt.xlutils读取.修改Excel文件 一.xlrd读取excel 这里介绍一个不错的包xlrs,可以工作在任何平台.这也就意味着你可以在Linux下读取Excel文 ...
- Java Struts2 POI创建Excel文件并实现文件下载
Java Struts2 POI创建Excel文件并实现文件下载2013-09-04 18:53 6059人阅读 评论(1) 收藏 举报 分类: Java EE(49) Struts(6) 版权声明: ...
- Java中使用POI读取大的Excel文件或者输入流时发生out of memory异常参考解决方案
注意:此参考解决方案只是针对xlsx格式的excel文件! 背景 前一段时间遇到一种情况,服务器经常宕机,而且没有规律性,查看GC日志发生了out of memory,是堆溢出导致的,分析了一下堆的d ...
- Jxl创建Excel文件和解析Excel文件
import java.io.File; import jxl.Workbook; import jxl.write.Label; import jxl.write.WritableSheet; im ...
- NPOI 2.0 创建Excel文件
如果只是简单的处理的话,只需要引用下载压缩包里的 NPOI.dll (office 2003)或 NPOI.OOXML.dll (office 2007) 文件而已. using System; us ...
- C#创建Excel文件并将数据导出到Excel文件
工具原料: Windows 7,Visual Studio 2010, Microsoft Office 2007 创建解决方案 菜单>新建>项目>Windows窗体应用程序: 添加 ...
- c++ 读取并解析excel文件方法
用Cocos开发模型特效工具编辑器,跨Mac和windows,当中有个需求是读取并解析excel文件,但网上的查找的例子几乎都只能是在windows下面使用,再或者是命令行脚本之类的.于是,自己写了一 ...
- C# 读取CSV和EXCEL文件示例
我们习惯了直接连到数据库上面读取数据表的数据内容: 如果有一天我们需要读取CSV,EXCEL文件的内容的时候,可不可以也像读数据表的方式一样呢?当然可以,使用OleDB ADO.NET是很简单的事情 ...
- java读取excel文件(.xls,xlsx,csv)
前提,maven工程通过poi读写excel文件,需要在pom.xml中配置依赖关系: 在<dependencies>中添加如下代码 <dependency> <grou ...
随机推荐
- SQLite主键自增需要设置为integer PRIMARY KEY
按照正常的SQL语句,创建一个数据表,并设置主键是这样的语句: ), EventType )) 但使用这种办法,在SQLite中创建的的数据表,如果使用Insert语句插入记录,如下语句: INSER ...
- C#函数式编程之缓存技术
缓存技术 该节我们将分成两部分来讲解,第一部分为预计算,第二部分则为缓存.缓存这个技术对应从事开发的人员来说是非常熟悉的,从页面缓存到数据库缓存无处不在,而其最重要的特点就是在第一次查询后将数据缓存, ...
- WPF快速入门系列(4)——深入解析WPF绑定
一.引言 WPF绑定使得原本需要多行代码实现的功能,现在只需要简单的XAML代码就可以完成之前多行后台代码实现的功能.WPF绑定可以理解为一种关系,该关系告诉WPF从一个源对象提取一些信息,并将这些信 ...
- JavaScript中的property和attribute
property,attribute都作“属性”解,但是attribute更强调区别于其他事物的特质/特性. 而在JavaScript中,property和attribute更是有明显的区别.众所周知 ...
- Wijmo 2016 V2 强势发布!
Angular 2 支持 Wijmo 对 Angular 2 提供了全面的支持.我们一直在紧跟Angular 2 开发团队的步伐,对其发布的最新候选版本提供支持. 了解更多关于Angular 2 的支 ...
- Backbone Model——数据模型
Model是Backbone中所有数据模型的基类,用于封装原始数据,并提供对数据进行操作的方法,我们一般通过继承的方式来扩展和使用它. 如果你做过数据库开发,可能对ORM(对象关系映射)不会陌生,而B ...
- hibernate 一对一关联关系 及其懒加载,总结
一对一,则有主对象和从对象之区别 若无主对象,则从对象亦无存在之意义. 主对象为person 从对象为idcard <hibernate-mapping package="cn.itc ...
- paip.提高效率---集合的存取括号方式 uapi java python php js 的实现比较
paip.提高效率---集合的存取括号方式 uapi java python php js 的实现比较 ##java ----------- 在JDK1.7中,摒弃了Java集合接口的实现类,如:Ar ...
- java异常处理——题
1.建立exception包,编写TestException.java程序,主方法中有以下代码,确定其中可能出现的异常,进行捕获处理. public class YiChang { public st ...
- asp提取声母源码
<% '****************************** '函数:getpychar(char) '参数:char,任意中文字符或句子 '作者:阿里西西 '日期:2007/7/15 ...