今天帮朋友写了一段用来处理EXCEL内容的程序,在这里记录下自己的学习过程。主要是对EXCEL表格中的内容做分类和统计,使用计算机来做这种重复的机械性地工作再好不过了。首先,我们需要下载一个java操作excel的开源插件,我使用的是jexcelapi(下载链接:http://120.52.73.49/nchc.dl.sourceforge.net/project/jexcelapi/jexcelapi/2.6.6/jexcelapi_2_6_6.zip)。进行解压,如果使用Eclipse等IDE需要在project->properties->Java Build Path 里面添加jxl.jar文件。至此,开发环境搭建完成。下面展开具体的操作:

  1、定义数据类型,因为每一列的数据类型不同,这里采用类数据类型来存储,采用对象数组来存储每一行的内容。

class record{
private int num;
private char ty;
public void SetNum(String s1){
this.num=Integer.parseInt(s1);
}
public void SetTy(String s2){
this.ty=(char)s2.getBytes()[0];
}
public int GetNum(){
return num;
}
public char GetTy(){
return ty;
}
}
record a[] = new record[row];
for(int i=0;i<row;i++)
a[i]= new record();

  注意代码中对对象数组的每一个元素初始化的过程,否则会出现java.lang.NullPointerException的异常抛出。

  2、连接到EXCEL,获取工作空间,我们用到了Workbook和Sheet类,在之前导入的jxl包里面。

//创建一个读取excel的容器
Workbook book = Workbook.getWorkbook(new File("G:/test123.xls"));
//读取第一页
Sheet sheet = book.getSheet(0);
//读取电子表格和列数和行数
int col = sheet.getColumns();
int row = sheet.getRows();

  3、读取每一个单元格的内容。将单元格的数据读取到数组中之后,接下来的工作可根据具体情况完成实际操作。

for(int i=0;i<row;i++){
//第一个参数代表列,第二个参数代表行
Cell cell1=sheet.getCell(0, i);
Cell cell2=sheet.getCell(1, i);
a[i].set_num(cell1.getContents());
a[i].set_ty(cell2.getContents());
}

  4、根据需求完成相关操作后,需要将数据写会Excel表格中,我们用到了WritableWorkbook和WritableSheet两个类。

//创建一个可写excel文件
WritableWorkbook bookw = Workbook.createWorkbook(new File("G:/testwtb.xls"));
//写入excel的第一页
WritableSheet sheetw = bookw.createSheet("first sheet",0);
for(int i=0;i<=index;i++){
Number n = new Number(0,i,x[i]);
sheetw.addCell(n);
Number n1 = new Number(1,i,y[i]);
sheetw.addCell(n1);
Number n2 = new Number(2,i,z[i]);
sheetw.addCell(n2);
Number n3 = new Number(3,i,xx[i]);
sheetw.addCell(n3);
}
bookw.write();
bookw.close();

至此,所有操作完成。

Java 操作 EXCEL的更多相关文章

  1. JAVA操作Excel时文字自适应单元格的宽度设置方法

    使用JAVA操作Excel通常都使用JXL,方法很简单网上也有很多的教程,然后往往一些细节性的问题却导致我们这些Programmer苦恼不已.这两天帮一个朋友做一个Excel表格自动生成的小软件,就遇 ...

  2. java操作Excel处理数字类型的精度损失问题验证

    java操作Excel处理数字类型的精度损失问题验证: 场景: CELL_TYPE_NUMERIC-->CELL_TYPE_STRING--->CELL_TYPE_NUMERIC POI版 ...

  3. jxl的使用总结(java操作excel)

    jxl.jar是通过java操作excel表格的工具类库: jxl.jar包:链接:http://pan.baidu.com/s/1o8qFJHw 密码:5jyq 1:通过模拟实现创建一个表格,然后模 ...

  4. Java操作Excel文件以及在Android中的应用

    本文章由临江仙原创,转载请注明出处:http://blog.csdn.net/zhy_cheng/article/details/10286563 Excel作为一种有格式的文件,可以使用Java来对 ...

  5. java操作Excel、PDF文件

    java操作Excel.PDF文件 分享者:Vashon 分享来源:CSDN博客 下面这些是在开发中用到的一些东西,有的代码贴的不是完整的,只是贴出了关于操作EXCEL的代码: jxl是一个*国人写的 ...

  6. 【转载】jxl的使用总结(java操作excel)

    jxl.jar是通过java操作excel表格的工具类库: 链接:https://pan.baidu.com/s/1AAT_eA_Q47zFeQohap6eQg 提取码:777b 1:通过模拟实现创建 ...

  7. java操作excel 工具类

    java操作excel 可参考https://blog.csdn.net/xunwei0303/article/details/53213130 直接上代码: 一.java生成excel文件: pac ...

  8. java操作excel文件

    采用POI操作excel API:http://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFCell.html poi包:http ...

  9. java操作excel总结---poi

    前不久做过Excel的导入导出功能,其主要的难点是java如何操作Excel文档.现在就来介绍一下利用Apache的poi如何操作Excel. 1.准备工作:导入Apache POI的相关jar包,P ...

随机推荐

  1. 浅谈.net中的params关键字

    先举个例子: 代码如下: class Program { static void Main(string[] args) { Console.WriteLine(Sum(1)); Console.Wr ...

  2. Objective-C中的@dynamic(转)

    转自 http://blog.csdn.net/haishu_zheng/article/details/12873151 Objective-C中的@dynamic 一.@dynamic与@synt ...

  3. PLSQL常用时间函数

    body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...

  4. border-radius的浏览器兼容

    早期开发时,圆角的实现对于开发者来说是一个头疼的事情,因为需要添加多种图片以及定位去实现固定.缺乏灵活性的圆角容器,故css3中引入了border-radius属性,使得开发者实现圆角变得轻而易举! ...

  5. Win32中GDI+应用(二)--初始化与清理

    GDI+提供了GdiplusStartup和 GdiplusShutdown 函数来进行初始化和完成清理工作.你必须在调用其他的GDI+函数之前,调用GdiplusStartup函数,在完成GDI+工 ...

  6. 使用APT减少MVP的冗余代码

    前言 不知道从何时起,移动端开发都开始采用MVP.我们在认识到MVP有点的时候,也不妨会察觉到它其实也有很多恼人的地方,比如,我们针对每种状态渲染不同的视图: private void renderI ...

  7. 学渣也要搞 laravel(3)—— HTTP控制器

    1. laravel 控制器在app/Http/Controllers/ 下,你会看到里面有一个Controller.php ,之后我们创建的控制器都是继承这个总控制器的.创建控制器只需要在这里面添加 ...

  8. mysql进阶1

    在我们用php处理数据的时候总会遇到些比较麻烦的事情,比如:两个二维数组,一个装的是文章分类表内容,一个装的是文章列表,有关联字段,完全等值,要求在列表文章的时候同时能在标题的前面显示栏目名称,此时循 ...

  9. mysql的数据类型int、bigint、smallint 和 tinyint取值范围 及varchar

    使用整数数据的精确数字数据类型.   bigint   从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字 ...

  10. iOS: 学习笔记, Swift运算符定义

    Swift操作符可以自行定义, 只需要加上简单的标志符即可. @infix 中置运算. 如+,-,*,/运算 @prefix 前置运算. 如- @postfix 后置运算. a++, a-- @ass ...