您的位置: 嵌入式在线 > 技术中心 > Java > Java/Excel 学习

Java/Excel 学习

2007-05-08      嵌入式在线      收藏 | 打印
  本文主要给出java/Excel应用的一个实用程序,供大家研究讨论.
 
  近两天研究查看了下Java+Excel的方法
 
  首先需要到网上下个jxl.jar的包
 
  我写的练习代码如下:(注意里面的图片替换成自己的就可以了)
 
  import java.io.*;
  import java.util.Random;
  import java.util.Date;
  import jxl.*;
  import jxl.format.UnderlineStyle;
  import jxl.write.*;
  import jxl.write.Number;
  import jxl.write.Boolean;
  public class CreateXL
  {
  public CreateXL()
  {
  }
  public static void main(String[] args)
  {
  //读Excel
  //CreateXL.readExcel("d:/abc.xls");
  //创建新的Excel
  CreateXL.writeExcel("d:/new.xls");
  //更新Excel
  CreateXL.updateExcel("d:/new.xls");
  }
  //jxl暂时不提供修改已经存在的数据表,这里通过一个小办法来达到这个目的,不适合大型数据更新!
  //这里是通过覆盖原文件来更新的.
  public static void updateExcel(String filePath)
  {
  try
  {
  Workbook rwb = Workbook.getWorkbook(new File(filePath));
  WritableWorkbook wwb = Workbook.createWorkbook(new File("d:/new.xls"),rwb);//copy
  WritableSheet ws = wwb.getSheet(0);
  WritableCell wc = ws.getWritableCell(0,0);
  //判断单元格的类型,做出相应的转换
  Label label = (Label)wc;
  label.setString("The value has been modified");
  wwb.write();
  wwb.close();
  rwb.close();
  }
  catch(Exception e)
  {
  e.printStackTrace();
  }
  }
  public static void writeExcel(String filePath)
  {
  try
  {
  //创建工作薄
  WritableWorkbook wwb = Workbook.createWorkbook(new File(filePath));
  //创建工作表
  WritableSheet ws = wwb.createSheet("Sheet1",0);
  //System.out.println("create ok!");
  //添加标签文本
  Random rnd=new Random((new Date()).getTime());
  int forNumber=rnd.nextInt(100);
  for(int i=0;i<forNumber;i++)
  {
  ws.addCell(new Number(rnd.nextInt(50),rnd.nextInt(50),rnd.nextInt(1000)));
  }
  //添加图片(注意此处jxl暂时只支持png格式的图片)
  //0,1分别代表x,y 2,5代表宽和高占的单元格数
  ws.addImage(new WritableImage(0,1,2,5,new File("png\\cs.png")));
  wwb.write();
  wwb.close();
  }
  catch(Exception e)
  {
  System.out.println(e.toString());
  }
  }
  public static void readExcel(String filePath)
  {
  /**
  *后续考虑问题,比如Excel里面的图片以及其他数据类型的读取
  **/
  try
  {
  InputStream is=new FileInputStream(filePath);
  //声名一个工作薄
  Workbook rwb = Workbook.getWorkbook(is);
  //获得工作薄的个数
  //rwb.getNumberOfSheets();
  //在Excel文档中,第一张工作表的缺省索引是0
  Sheet st = rwb.getSheet("Sheet1");
  //通用的获取cell值的方式,getCell(int column, int row) 行和列
  int Rows=st.getRows();
  int Cols=st.getColumns();
  System.out.println("当前工作表的名字:"+st.getName());
  System.out.println("总行数:"+Rows);
  System.out.println("总列数:"+Cols);
  Cell c;
  for(int i=0;i<Cols;++i)
  {
  for(int j=0;j<Rows;++j)
  {
  //getCell(Col,Row)获得单元格的值
  System.out.print((st.getCell(i,j)).getContents()+"\t");
  }
  System.out.print("\n");
  }
  //操作完成时,关闭对象,释放占用的内存空间
  rwb.close();
  }
  catch(Exception e)
  {
  e.printStackTrace();
  }
  }
  }
 

 
本文来源:中国java开发网    作者:
热点资讯(一周点击率)
热评博文
评一评已有 0 位网友对此文发表了看法。  我也来评一下

验证码:  看不清?换一张

 

快乐大本营

    无线时代来临,移动产业生态系统将发生一些根本变化。今日头条推荐“芯片是嵌入式4G技术的关键 产业生态系统将发生变化”。

    想了解嵌入式开发工具的市场情况吗?先来体验下我们的在线调查吧!填写调查问卷

工程师之星
朱礼昆
电子信息工程专业,擅长硬件编程
  • 胡菲菲  技术专长:嵌入式系统linux
  • 柳如峰  技术专长:模电,电源
热门招聘
论坛热贴