Java 读写Excel文件整理
前言:由于工作比较忙,很久没有写博客了,最近接手了某工业过程故障诊断应用软件的项目,其中实例化模拟采用的数据来源为Excel文件,其中遇到一些问题,虽最终得以解决,但仍觉有记录之必要。
正文:
section1:需要下载一个处理Excel文件的jar包(需要注意的是,此jar包只支持.xls后缀的Excel文件,不能支持.xlsx后缀的文件)
下载链接:点击下载
section2:读取Excel文件数据及常用处理
public void ReadExcelHandle() throws BiffException, IOException
{
//Excel文件路径
File file = new File("C:\\Users\\XXXXXX\\Desktop\\5y测点.xls");
//创建输入流,从流中读取数据
InputStream in = new FileInputStream(file);
//创建一个工作簿
Workbook workbook_in = Workbook.getWorkbook(in);
//1.可通过通过下标来访问Sheet表,要注意的一点是下标从0开始,就像数组一样。
//2.可通过Sheet的名称来访问sheet表。
Sheet sheet0 = workbook_in.getSheet(0);
//1.可以通过指定行和列得到指定的单元格Cell对象,如第1列第4行
Cell c00 = sheet0.getCell(0, 3);
//2.也可以得到某一行或者某一列的所有单元格Cell对象,如第1列,第4行
Cell[] cells = sheet0.getColumn(0);
Cell[] cells2 = sheet0.getRow(3);
//然后再取每一个Cell中的值
String content = cells2[0].getContents();
String strc00 = c00.getContents();
//测试
System.out.println(cells[0].getContents()+strc00+content);
}
section3:向Excel文件写入数据
public void WriteExcelHandle() throws BiffException, IOException, RowsExceededException, WriteException
{
//待写入数据的Excel文件路径
File fileWrite = new File("C:\\Users\\XXXXX\\Desktop\\5y测点-t.xls");
//创建输出流
OutputStream os=new FileOutputStream(fileWrite);
//创建一个可写工作簿
WritableWorkbook workbook = Workbook.createWorkbook(os);
//创建新的一页(第一页)(String sheetName,int index)
WritableSheet sheet = workbook.createSheet("First Sheet",0);
//创建要显示的内容,创建一个单元格,第一个参数为列坐标,第二个参数为行坐标,第三个参数为内容
Label chanel = new Label(0,0,"通道");
sheet.addCell(chanel);
Label Sample = new Label(1,0,"采样点");
sheet.addCell(Sample);
Label Date = new Label(2,0,"时间");
sheet.addCell(Date);
Label Speed = new Label(3,0,"转速");
sheet.addCell(Speed);
}
section4:Java读写Excel文件注意事项
1.上面介绍了Excel文件的读写,我们采用getContents()从Excel的Cell中读取到的数据是String类型的,并不是我们期待的数值类型。因此,很多情况下,我们还需要对数据类型进行转换,这里我介绍几种常用的转换:
a.String转int;b.String转float
String str="123456";
String str1="123.456";
int i=Integer.parseInt(str);
float f=Float.parseFloat(str1);
System.out.println(i+f);
2.异常问题:在对Excel文件进行读写时,由于数据或文件本身可能存在问题(缺失、格式错误等因素),会导致程序因异常而中断,因此,须采取必要措施,一般有几种方式,大家感兴趣可以看一下:文章链接
http://www.cnblogs.com/tsiangleo/p/4396574.html