Monday, March 9, 2015

java读取excel文件并改变格式输出到txt文件

1. java导入导出Excel文件要引入jxl.jar包,最关键的是这套API是纯Java的,并不依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件。下载地址:http://www.andykhan.com/jexcelapi/
2. 2.jxl对Excel表格的认识:每个单元格的位置认为是由一个二维坐标(i,j)给定,其中i表示列,j表示行,并且从上到下递增,从左到右递增。
3. 本代码读取text.xls的头三列,按行输出到result.txt
稍微改变格式


  1. import java.io.File;
  2. import java.io.FileOutputStream;

  3. import jxl.*; 




  4. public class Read_excel{
  5.     public static void main(String[] args) {
  6.         int i;
  7.         Sheet sheet;
  8.         Workbook book;
  9.         Cell cell1,cell2,cell3;
  10.         String content;
  11.         try { 
  12.             //t.xls为要读取的excel文件名
  13.             book= Workbook.getWorkbook(new File("e:\\test.xls")); 
  14.             
  15.             //获得第一个工作表对象(ecxel中sheet的编号从0开始,0,1,2,3,....)
  16.             sheet=book.getSheet(0); 
  17.             //获取左上角的单元格
  18.             cell1=sheet.getCell(0,0);
  19.             System.out.println("标题:"+cell1.getContents()); 
  20.             
  21.             File outFile=new File("e:\\result.txt");
  22.             FileOutputStream fos=new FileOutputStream(outFile);
  23.             
  24.             
  25.             i=1;
  26.             while(true)
  27.             {
  28.                 //获取每一行的单元格 
  29.                 cell1=sheet.getCell(0,i);//(列,行)
  30.                 cell2=sheet.getCell(1,i);
  31.                 cell3=sheet.getCell(2,i);
  32.                 if("".equals(cell1.getContents())==true)    //如果读取的数据为空
  33.                     break;       System.out.println(cell1.getContents()+"\t"+cell2.getContents()+"\t"+cell3.getContents());
  34.                 content=cell1.getContents()+"\t"+cell2.getContents()+"0000&&&&&"+cell3.getContents()+"\r\n";
  35.                 byte[] contentInBytes = content.getBytes();
  36.                 fos.write(contentInBytes);
  37.                 i++;
  38.             }
  39.             book.close(); 
  40.             fos.close();
  41.         }
  42.         catch(Exception e)  { } 
  43.     }
  44. }

No comments:

Post a Comment