此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【mazhaoqing】截止到2008-07-04 16:55:32的历史汇总数据(不包括此帖):
发帖的总数量:3                        发帖的总分数:40                       
结贴的总数量:3                        结贴的总分数:40                       
无满意结贴数:1                        无满意结贴分:100                      
未结的帖子数:0                        未结的总分数:0                        
结贴的百分比:100.00%               结分的百分比:100.00%                  
无满意结贴率:33.33 %               无满意结分率:250.00%                  
敬礼!

解决方案 »

  1.   

    lz网上搜一下apache的poi组件  支持导入Excel的功能很强大~~~HOHO~
      

  2.   

      jxl  下载这个包  一般都有demo在里面 
      
       很好用 的
      

  3.   

    response.setContentType("application/x-msdownload;charset=UTF-8");
    response.setContentType("application/vnd.ms-excel; charset=Big5");
    response.setHeader("Content-Disposition", "attachment; filename="
    + "senddeail_log" + ".xsl");
    OutputStream os = null;
    // 将工作薄输出到输出流
    // 使用jxl導出,csv文件,沒有亂碼問題但是會彈出提示,后綴名被修改
    /*
     * ServletOutputStream os = response.getOutputStream();//输出的Excel文件URL
     * response.setContentType("application/x-msdownload;charset=UTF-8");
     * response.setHeader("Content-Disposition","attachment;
     * filename=statreport.csv"); response.setCharacterEncoding("UTF-8");
     * try { WritableWorkbook book = Workbook.createWorkbook(os);//创建可写工作薄 //
     * 生成名为“第一页”的工作表,参数0表示这是第一页 WritableSheet
     * sheet=book.createSheet("SUB_ID查詢報表",0); //
     * 在Label对象的构造子中指名单元格位置是第一列第一行(0,0) // 以及单元格内容为test sheet.addCell(new
     * Label(0,0,"發送編號")); sheet.addCell(new Label(1,0,"時間"));
     * sheet.addCell(new Label(2,0,"標題")); sheet.addCell(new
     * Label(3,0,"接收號碼")); sheet.addCell(new Label(4,0,"訊息編號"));
     * sheet.addCell(new Label(5,0,"接收時間")); sheet.addCell(new
     * Label(6,0,"接收狀態"));
     * 
     * QueryBean qb = (QueryBean)
     * request.getAttribute(GlobalConstNaming.QUERY_BEAN_NAME); ResultBean
     * resultBean = null; resultBean=statReportMag.thrdinfo(qb,jobid,date);
     * List result = (List)resultBean.getTotalResult(); for(int i=0;i<result.size();i++){
     * StatSendthrdbean bean = (StatSendthrdbean)result.get(i);
     * sheet.addCell(new Label(0,i+1,(String) bean.getJobid()));
     * sheet.addCell(new Label(1,i+1,(String) bean.getDate()));
     * sheet.addCell(new Label(2,i+1,(String) bean.getContent()));
     * sheet.addCell(new Label(3,i+1,(String) bean.getRecvmobile()));
     * sheet.addCell(new Label(4,i+1,(String) bean.getMsgid()));
     * sheet.addCell(new Label(5,i+1,(String) bean.getRecvdate()));
     * sheet.addCell(new Label(6,i+1,(String) bean.getStatus())); // if
     * (bean.getRecvdate() != null) { //// // 处理时间变成数字问题 // String ctime =
     * DateUtil.dateToStr2(bean.getRecvdate().toString()); //
     * sheet.addCell(new Label(6,i+1,ctime.substring(0,16))); // } else //
     * sheet.addCell(new Label(6,i+1,"")); // } // 将工作薄输出到输出流 book.write();
     * os.flush(); book.close(); PrintWriter out = new PrintWriter(os,
     * true); out.close(); } catch (Exception e) { e.printStackTrace(); }
      

  4.   

    POI 例:
    package book.io;import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;import org.apache.poi.hssf.usermodel.HSSFCell;
    import org.apache.poi.hssf.usermodel.HSSFCellStyle;
    import org.apache.poi.hssf.usermodel.HSSFFont;
    import org.apache.poi.hssf.usermodel.HSSFRow;
    import org.apache.poi.hssf.usermodel.HSSFSheet;
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.hssf.util.Region;/**
     * 去http://jakarta.apache.org/site/downloads/downloads_poi.cgi下载poi项目相关的jar包和文档
     */
    public class ExcelFile { /**
     * 新建一个Excel文件,里面添加5行5列的内容,再添加两个高度为2的大单元格。
     * 
     * @param fileName
     */
    public void writeExcel(String fileName) { //目标文件
    File file = new File(fileName);
    FileOutputStream fOut = null;
    try {
    // 创建新的Excel 工作簿
    HSSFWorkbook workbook = new HSSFWorkbook(); // 在Excel工作簿中建一工作表,其名为缺省值。
    // 也可以指定工作表的名字。
    HSSFSheet sheet = workbook.createSheet("Test_Table"); //  创建字体,红色、粗体
    HSSFFont font = workbook.createFont();
    font.setColor(HSSFFont.COLOR_RED);
    font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); //  创建单元格的格式,如居中、左对齐等
    HSSFCellStyle cellStyle = workbook.createCellStyle();
    //  水平方向上居中对齐
    cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
    //  垂直方向上居中对齐
    cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
    //  设置字体
    cellStyle.setFont(font); //下面将建立一个4行3列的表。第一行为表头。
    int rowNum = 0;//行标
    int colNum = 0;//列标
    //建立表头信息
    // 在索引0的位置创建行(最顶端的行)
    HSSFRow row = sheet.createRow((short) rowNum);
    //  单元格
    HSSFCell cell = null;
    for (colNum = 0; colNum < 5; colNum++) {
    // 在当前行的colNum列上创建单元格
    cell = row.createCell((short) colNum); // 定义单元格为字符类型,也可以指定为日期类型、数字类型
    cell.setCellType(HSSFCell.CELL_TYPE_STRING);
    //  定义编码方式,为了支持中文,这里使用了ENCODING_UTF_16
    cell.setEncoding(HSSFCell.ENCODING_UTF_16);
    //  为单元格设置格式
    cell.setCellStyle(cellStyle); // 添加内容至单元格
    cell.setCellValue("表头名-" + colNum);
    }
    rowNum++;
    for (; rowNum < 5; rowNum++) {
    //  新建第rowNum行
    row = sheet.createRow((short) rowNum);
    for (colNum = 0; colNum < 5; colNum++) {
    // 在当前行的colNum位置创建单元格
    cell = row.createCell((short) colNum);
    cell.setEncoding(HSSFCell.ENCODING_UTF_16);
    cell.setCellStyle(cellStyle);
    cell.setCellValue("值-" + rowNum + "-" + colNum);
    }
    } //  合并单元格
    //  先创建2行5列的单元格,然后将这些单元格合并为2个大单元格
    rowNum = 5;
    for (; rowNum < 7; rowNum++) {
    row = sheet.createRow((short) rowNum);
    for (colNum = 0; colNum < 5; colNum++) {
    // 在当前行的colNum位置创建单元格
    cell = row.createCell((short) colNum);
    }
    }
    //建立第一个大单元格,高度为2,宽度为2
    rowNum = 5;
    colNum = 0;
    Region region = new Region(rowNum, (short) colNum, (rowNum + 1),
    (short) (colNum + 1));
    sheet.addMergedRegion(region);
    //获得第一个大单元格
    cell = sheet.getRow(rowNum).getCell((short) colNum);
    cell.setEncoding(HSSFCell.ENCODING_UTF_16);
    cell.setCellStyle(cellStyle);
    cell.setCellValue("第一个大单元格"); //建立第二个大单元格,高度为2,宽度为3
    colNum = 2;
    region = new Region(rowNum, (short) colNum, (rowNum + 1),
    (short) (colNum + 2));
    sheet.addMergedRegion(region);
    //获得第二个大单元格
    cell = sheet.getRow(rowNum).getCell((short) colNum);
    cell.setEncoding(HSSFCell.ENCODING_UTF_16);
    cell.setCellStyle(cellStyle);
    cell.setCellValue("第二个大单元格"); //  工作薄建立完成,下面将工作薄存入文件
    // 新建一输出文件流
    fOut = new FileOutputStream(file);
    // 把相应的Excel 工作簿存盘
    workbook.write(fOut);
    fOut.flush();
    // 操作结束,关闭文件
    fOut.close(); System.out
    .println("Excel文件生成成功!Excel文件名:" + file.getAbsolutePath());
    } catch (Exception e) {
    System.out.println("Excel文件" + file.getAbsolutePath()  + "生成失败:" + e);
    } finally {
    if (fOut != null){
    try {
    fOut.close();
    } catch (IOException e1) {
    }
    }
    }
    } /**
     * 读Excel文件内容
     * 
     * @param fileName
     */
    public void readExcel(String fileName) {

    File file = new File(fileName);
    FileInputStream in = null;
    try {
    // 创建对Excel工作簿文件的引用
    in = new FileInputStream(file);
    HSSFWorkbook workbook = new HSSFWorkbook(in); // 创建对工作表的引用。
    // 这里使用按名引用
    HSSFSheet sheet = workbook.getSheet("Test_Table");
    // 也可用getSheetAt(int index)按索引引用,
    // 在Excel文档中,第一张工作表的缺省索引是0,其语句为:
    // HSSFSheet sheet = workbook.getSheetAt(0); //下面读取Excel的前5行的数据
    System.out.println("下面是Excel文件" + file.getAbsolutePath() + "的内容:");
    HSSFRow row = null;
    HSSFCell cell = null;
    int rowNum = 0;//行标
    int colNum = 0;//列标
    for (; rowNum < 5; rowNum++) {
    //  获取第rowNum行
    row = sheet.getRow((short) rowNum);
    for (colNum = 0; colNum < 5; colNum++) {
    // 获取当前行的colNum位置的单元格
    cell = row.getCell((short) colNum);
    System.out.print(cell.getStringCellValue() + "\t");
    }
    //换行
    System.out.println();
    } in.close();
    } catch (Exception e) {
    System.out.println("读取Excel文件" + file.getAbsolutePath() + "失败:" + e);
    }  finally {
    if (in != null){
    try {
    in.close();
    } catch (IOException e1) {
    }
    }
    } }
    public static void main(String[] args) throws Exception {
    ExcelFile excel = new ExcelFile();
    String fileName = "c:/temp/temp.xls";
    excel.writeExcel(fileName);
    excel.readExcel(fileName);
    }
    }
    另外,如果官方下载不了包包。o(∩_∩)o...
    POI的API以及jxl的API可到我的空间下载。(free)