可以。调用jxl.jar包,网上有很多这样的例子。

解决方案 »

  1.   

    package excel;import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.Date;
    import java.util.List;
    import java.util.Random;import jxl.Cell;
    import jxl.Sheet;
    import jxl.Workbook;
    import jxl.write.Label;
    import jxl.write.Number;
    import jxl.write.WritableImage;
    import jxl.write.WritableSheet;
    import jxl.write.WritableWorkbook;
    import jxl.write.WriteException;public class WriteExcel { /**
      * 构建Workbook对象, 只读Workbook对象
      */
     //WritableWorkbook book=null; 
     public void OutputExcel(List list,String Path)
     {
      try
      {
       WritableWorkbook bk = Workbook.createWorkbook(new File(Path)); 
                 //设置表名 
       WritableSheet sheet = bk.createSheet("考试单",0);
       
                //生成表格题头 
       /**
        * Label(0, 0, "考生姓名" );
        * 第一个0表示第一列 
        * 第二个0表示第一行
        * 第三个表示该行该列的内容
        */
       Label labe1 = new Label(0, 0, "考生姓名" ); 
       Label labe2 = new Label(1, 0, "地区"); 
       Label labe3 = new Label(2, 0, "所属院校"); 
       Label labe4 = new Label(3, 0, "班级"); 
       Label labe5 = new Label(4, 0, "考试号"); 
       Label labe6 = new Label(5, 0, "考试时间"); 
       Label labe7 = new Label(6, 0, "科目名称"); 
           //将生成的单元格添加到工作表中 
       
       sheet.addCell(labe1); 
       sheet.addCell(labe2); 
       sheet.addCell(labe3); 
       sheet.addCell(labe4); 
       sheet.addCell(labe5); 
       sheet.addCell(labe6); 
       sheet.addCell(labe7); 
           for(int i = 1;i<list.size()+1;i++)
           {
          // 取得数据生成单元格 
            List array = (List)list.get(0);
            Label label1=new Label(0,i,(String)array.get(0)); 
            Label label2=new Label(1,i,(String)array.get(1)); 
            Label label3=new Label(2,i,(String)array.get(2)); 
            Label label4=new Label(3,i,(String)array.get(3)); 
            Label label5=new Label(4,i,(String)array.get(4)); 
            Label label6=new Label(5,i,(String)array.get(5)); 
            Label label7=new Label(6,i,(String)array.get(6)); 
             // 将生成的单元格添加到工作表中 
            
            sheet.addCell(label1); 
            sheet.addCell(label2); 
            sheet.addCell(label3); 
            sheet.addCell(label4); 
            sheet.addCell(label5); 
            sheet.addCell(label6); 
            sheet.addCell(label7);        
           }
           //添加图片(注意此处jxl暂时只支持png格式的图片)
           //0,1分别代表x,y    2,5代表宽和高占的单元格数
           /**
            * 7代表X,第八列
            * 1代表Y,第二行
            */
           sheet.addImage(new WritableImage(7,1,2,5,new File("d:\\png\\cs.png")));  
           bk.write(); 
           bk.close();   }
        catch(Exception e)
        {
         e.printStackTrace();
        }
         }
    /**
     * 读去Excel
     * @param Path
     */
     public void ReaderExcel(String Path)
     {
      try
      {
       InputStream is=new FileInputStream(Path);
             //声名一个工作薄
                Workbook rwb = Workbook.getWorkbook(is);
                
                //获得工作薄的个数
                //rwb.getNumberOfSheets();   
                
                //在Excel文档中,第一张工作表的缺省索引是0
                Sheet st = rwb.getSheet(0);
                //通用的获取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();
        }
     }
    }
    测试import java.util.ArrayList;
    import java.util.List;public class TestExcel { /**
      * @param args
      */
     public static void main(String[] args) {
      // TODO Auto-generated method stub  List list1 = new ArrayList();
      List list2 = new ArrayList();
      list1.add(0, "王");
      list1.add(1, "重庆");
      list1.add(2, "西南大学");
      list1.add(3, "03计科一班");
      list1.add(4, "113");
      list1.add(5, "2007-05-05 11:50:00");
      list1.add(6, "英语");
      list2.add(list1);
      
      WriteExcel write = new WriteExcel();
      //write.OutputExcel(list2, "d:/小龙.xls");
      write.ReaderExcel("d:/小龙.xls");
     }}
     这是我前几天写的
     用的是jxl.jar
    你也可以用poi.jar