你下载JXL后看一下文档说明就给长清楚了

解决方案 »

  1.   

    前段时间正好做了,导入和导出的,你自己看吧
    /**导出数据为XLS格式
     * @param fos
     * @param bo
     */
    public void writeExcelBo(FileOutputStream fos, java.util.Vector ve)
    {
    jxl.write.WritableWorkbook wwb;
    try
    {
    wwb= Workbook.createWorkbook(fos);
    jxl.write.WritableSheet ws= wwb.createSheet("booksheet", 10);
    ws.addCell(new jxl.write.Label(0, 1, "书目ID"));
    ws.addCell(new jxl.write.Label(1, 1, "ISBN"));
    ws.addCell(new jxl.write.Label(2, 1, "定价"));
    ws.addCell(new jxl.write.Label(3, 1, "书名"));
    ws.addCell(new jxl.write.Label(4, 1, "原书名"));
    ws.addCell(new jxl.write.Label(5, 1, "副题名"));
    ws.addCell(new jxl.write.Label(6, 1, "著者"));
    ws.addCell(new jxl.write.Label(7, 1, "译者"));
    ws.addCell(new jxl.write.Label(8, 1, "版次"));
    ws.addCell(new jxl.write.Label(9, 1, "出版地"));
    ws.addCell(new jxl.write.Label(10, 1, "出版社"));
    ws.addCell(new jxl.write.Label(11, 1, "出版日期"));
    ws.addCell(new jxl.write.Label(12, 1, "页数"));
    ws.addCell(new jxl.write.Label(13, 1, "书高"));
    ws.addCell(new jxl.write.Label(14, 1, "装帧"));
    ws.addCell(new jxl.write.Label(15, 1, "丛书名"));
    ws.addCell(new jxl.write.Label(16, 1, "一般性附注项"));
    ws.addCell(new jxl.write.Label(17, 1, "简介"));
    ws.addCell(new jxl.write.Label(18, 1, "主题词"));
    ws.addCell(new jxl.write.Label(19, 1, "中图法分类"));
    ws.addCell(new jxl.write.Label(20, 1, "更新日期"));
    ws.addCell(new jxl.write.Label(21, 1, "本数"));
    book=new Book[ve.size()];
    for (int i= 0; i < ve.size(); i++)
    {
    book[i]= (Book)ve.get(i);
    ws.addCell(new jxl.write.Label(0, i + 2, "" + book[i].getBookId()));
    ws.addCell(new jxl.write.Label(1, i + 2, book[i].getIsbn()));
    ws.addCell(new jxl.write.Label(2, i + 2, "" + book[i].getPrice()));
    ws.addCell(new jxl.write.Label(3, i + 2, book[i].getBookTitle()));
    ws.addCell(new jxl.write.Label(4, i + 2, book[i].getOldFilename()));
    ws.addCell(new jxl.write.Label(5, i + 2, book[i].getSubTitle()));
    ws.addCell(new jxl.write.Label(6, i + 2, book[i].getWriter()));
    ws.addCell(new jxl.write.Label(7, i + 2, book[i].getTranscribe()));
    ws.addCell(new jxl.write.Label(8, i + 2, "" + book[i].getVersion()));
    ws.addCell(new jxl.write.Label(9, i + 2, book[i].getPublishCity()));
    ws.addCell(new jxl.write.Label(10, i + 2, book[i].getPublisher()));
    ws.addCell(new jxl.write.Label(11, i + 2, book[i].getPublishDate().toString()));
    ws.addCell(new jxl.write.Label(12, i + 2, "" + book[i].getPage()));
    ws.addCell(new jxl.write.Label(13, i + 2, "" + book[i].getHight()));
    ws.addCell(new jxl.write.Label(14, i + 2, book[i].getInstall()));
    ws.addCell(new jxl.write.Label(15, i + 2, book[i].getSeries()));
    ws.addCell(new jxl.write.Label(16, i + 2, book[i].getNotes()));
    ws.addCell(new jxl.write.Label(17, i + 2, book[i].getPrecisnotes()));
    ws.addCell(new jxl.write.Label(18, i + 2, book[i].getSubject()));
    ws.addCell(new jxl.write.Label(19, i + 2, book[i].getCls().replaceAll("_", "")));
    ws.addCell(new jxl.write.Label(20, i + 2, book[i].getUpdatedate().toString()));
    ws.addCell(new jxl.write.Label(21, i + 2, "0"));
    }
    jxl.write.WritableFont wfc=
    new jxl.write.WritableFont(
    WritableFont.ARIAL,
    255,
    WritableFont.BOLD,
    false,
    UnderlineStyle.NO_UNDERLINE,
    jxl.format.Colour.BLACK);
    jxl.write.WritableCellFormat wcfFC= new jxl.write.WritableCellFormat(wfc);
    ws.addCell(new jxl.write.Label(0, 0, "为保证您提交定单的稳定和正确,导入定单时候请勿更改此表格式(请勿更改书目ID,订购本数自行添加!)"));
    wwb.write();
    //关闭Excel工作薄对象
    wwb.close();
    } catch (IOException e)
    {} catch (RowsExceededException e)
    {} catch (WriteException e)
    {}
    }
    //导入EXCEL
    if (f.getName().indexOf(".xls") > 0)
    {
    try
    {
    fis= new FileInputStream(f);
    BookBean bob= new BookBean();
    UserBean usb= new UserBean();
    jxl.Workbook rwb= Workbook.getWorkbook(fis);
    jxl.Sheet sh= rwb.getSheet(0);
    int rowCount= sh.getRows();
    SimpleDateFormat sdf= new SimpleDateFormat("dd/MM/yyyy");
    book= new Book[rowCount - 1];
    for (int i= 1; i < rowCount; i++)
    {
    book[i - 1]= new Book();
    jxl.Cell[] ce= sh.getRow(i);
    book[i - 1].setIsbn(ce[0].getContents().toString());
    book[i - 1].setSeries(ce[1].getContents().toString());
    book[i - 1].setBookTitle(ce[2].getContents().toString());
    book[i - 1].setWriter(ce[3].getContents().toString());
    book[i - 1].setTranscribe(ce[4].getContents().toString());
    book[i - 1].setPublisher(ce[5].getContents().toString());
    book[i - 1].setPublishDate(sdf.parse(ce[6].getContents().toString(), new ParsePosition(0)));
    book[i-1].setVersion(Integer.parseInt(ce[7].getContents().toString()));
    book[i-1].setPage(Integer.parseInt(ce[8].getContents().toString()));
    book[i-1].setCls(ce[9].getContents().toString());
    book[i-1].setPrecisnotes(ce[10].getContents().toString());
    book[i-1].setInstall(ce[11].getContents().toString());
    book[i-1].setPrice(Float.parseFloat(ce[12].getContents().toString()));
    book[i-1].setUserid(usb.getUser().getUserid());
    getVector().addElement(book[i - 1]);
    }
    rwb.close();
    fis.close();
    } catch (FileNotFoundException e)
    {} catch (BiffException e)
    {} catch (IOException e)
    {} catch (NumberFormatException e)
    {
    ShowMessage("数据导入失败,请按照本软件要求的EXCEL格式导入定单");
    }
    }
      

  2.   

    看一下,对你会有所帮助的(不在此处粘贴具体内容,算是节约CSDN的磁盘空间吧,呵呵)
        JSP动态输出Excel及中文乱码的解决(地址:http://www.knowsky.com/4255.html)
    文中用到的:JExcel
       (下载页面:http://www.andykhan.com/jexcelapi/download.html)
       (使用指南页面:http://www.andykhan.com/jexcelapi/tutorial.html)
      

  3.   

    谢谢,我先看看
    不过我要的是从Excel特定的地方读入数据
      

  4.   

    特定的地方只要有规律就能取出来,其实在读excel的时候是把这个excel的每个 sheet看做是一个二维表来实现的,这样应该比较好理解吧
      

  5.   

    IBM的jxl方式:
    package excelfile;
    import java.text.DateFormat;
    import java.util.*;
    import java.io.*;
    import jxl.*;/**
     * <p>Title: </p>
     * <p>Description: </p>
     * <p>Copyright: Copyright (c) 2004</p>
     * <p>Company: </p>
     * @author not attributable
     * @version 1.0
     */public class Jxlcreateexcel {
      public Jxlcreateexcel() {
      }  public void getExcelFile() {
        String tableName = "EXCEL_OUTPUT_TEST_REALDATA_2";
        String im = "";
        String sid = "oral";
        String server = "10.254.100.25";
        String whereItem = "rownum <3375";
        try {
          jxl.write.WritableWorkbook book = Workbook.createWorkbook(new File(
              "/home/ljz/filestest/jxlEXCEL_OUTPUT_TEST_REALDATA_2.xls"));
          jxl.write.WritableSheet sh = book.createSheet("jxltest", 0);
          DBAccess dbaccess = new DBAccess();
          dbaccess.setSelectItems(tableName);
          dbaccess.setSid(sid);
          dbaccess.setServer(server);
          dbaccess.setItems(im);
          dbaccess.setWhereItem(whereItem);
          Hashtable sels = null;
          sels = dbaccess.getSelectData();
          int hashElement = sels.size();
          for (int y = 0; y < hashElement; y++) {
            Vector items = (Vector) sels.remove(String.valueOf(y));
            for (int x = 0; x < items.size(); x++) {
              jxl.write.Label labelCell = new jxl.write.Label(x, y,
                  (String) items.get(x));
              sh.addCell(labelCell);
              labelCell = null;
            }
          }
          book.write();
          book.close();
        }
        catch (Exception e) {
          e.printStackTrace();
        }
      }  public static void main(String args[]) {
        Date time = new Date();
        DateFormat fullDateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG);
        System.out.println("The process start time:"+fullDateFormat.format(time));
        Jxlcreateexcel jxlexcle = new Jxlcreateexcel();
        try {
          jxlexcle.getExcelFile();
        }
        catch (Exception e) {
          e.printStackTrace();
        }
        Date time1 = new Date();
        System.out.println("The process end time:"+fullDateFormat.format(time1));
      }}这是我写的在linux上面导入excel的方式,windows里面也一样,只不过把生成文件的目录改一下,还有就是你需要下载一个lib,这个就是jxl.jar,(注:DBAccess是我写的一个连接数据库以及从数据库获取数据的一个类 )另外还有一种方式就是poi,我也写了
      

  6.   

    package excelfile;import java.util.*;
    import java.io.*;
    import jxl.*;/**
     * <p>Title: </p>
     * <p>Description: </p>
     * <p>Copyright: Copyright (c) 2004</p>
     * <p>Company: </p>
     * @author not attributable
     * @version 1.0
     */public class Jxlgetcelldata {
      public Jxlgetcelldata() {
      }  public void getdata() throws IOException {
        try {
          InputStream myexcel = new FileInputStream("d:\\test_tab.xls");
          Workbook rwb = Workbook.getWorkbook(myexcel);
          Sheet rs = rwb.getSheet(0);
          System.out.println(rs.getColumns());
          System.out.println(rs.getRows());
          Cell c01 = rs.getCell(0,0);
          String getdata = c01.getContents();
          System.out.print("Cell"+"value:"+getdata);
        }
        catch (Exception e) {
          e.printStackTrace();
        }
      }
      public static void main(String args[]){
        Jxlgetcelldata celldata= new Jxlgetcelldata();
        try{
          celldata.getdata();
        }catch(Exception e){
          e.printStackTrace();
        }
      }
    }
    刚才那个是写入excel文件,这个是从excel文件中读取内容