要把表里的数据保存在Excle,要怎么做啊,以前没搞过

解决方案 »

  1.   

    plsql直接可以倒,程序的话有控件。
      

  2.   

    首先要下载相应的包,具体的包如下:
    pinyin4j-2.5.0.jar
    poi-3.2-FINAL-20081019.jar
    poi-contrib-3.2-FINAL-20081019.jar
    poi-scratchpad-3.2-FINAL-20081019.jar
    mysql-connector-java-5.1.10-bin.jar 
    import java.io.FileInputStream;
    import java.sql.Connection;
    import java.sql.PreparedStatement;import org.apache.poi.hssf.record.formula.functions.Cell;
    import org.apache.poi.hssf.usermodel.HSSFCell;
    import org.apache.poi.hssf.usermodel.HSSFRow;
    import org.apache.poi.hssf.usermodel.HSSFSheet;
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;/*
    * 该类为读取excel文件,并导入到数据库
    */
    public class ReadExcelToDB {public static String fileName= "E:\\text.xls";@SuppressWarnings("deprecation")
    public static void main(String argv[]) {
    Connection con = null;
    PreparedStatement ps = null;
    try {
    con = DBTools.getConnection();
    //把一张*.xls的数据表读到workbook里面
    HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileName));
    //读取第一个sheet工作表
    HSSFSheet sheet = workbook.getSheetAt(0);//获取工作表的最后一条记录
    int rows = sheet.getLastRowNum();
    for (int r = 0; r < rows+1; r++) {
    //获取当前行数
    HSSFRow row = sheet.getRow(r);
    if (row != null) {
    int cells = 4;
    String value = "";
    for (short c = 0; c < cells; c++) {
    //获取当前行的列数
    HSSFCell cell = row.getCell(c);
    if (cell != null) {
    //判断cell的类型
    switch (cell.getCellType()) {
    //如果当前cell的数据类型为公式型
    case HSSFCell.CELL_TYPE_FORMULA:
    break;
    // 如果当前Cell的数据类型为数值型 
    case HSSFCell.CELL_TYPE_NUMERIC:
    value += String.valueOf((long)cell.getNumericCellValue())+",";
    value.toString();
    break;
    //如果当前cell的数据类型为字符串类型
    case HSSFCell.CELL_TYPE_STRING:
    value += cell.getStringCellValue() + ",";
    break;
    //如果当前cell的数据类型为空值
    case HSSFCell.CELL_TYPE_BLANK:
    break;
    //默认
    default:
    value += ",";
    }
    }
    }HSSFCell cell = row.getCell((short)1);
    int cell0 = ExcelUtils.getIntCellValue(row, 0);
    int cell2 = ExcelUtils.getIntCellValue(row, 2);
    //     下面可以获取汉字拼音的首字母
    String firstPy = PinyinToolkit.cn2FirstSpell(cell.getStringCellValue()).toUpperCase();
    System.out.println(firstPy);sql = "insert into t_employ(code,name,provinceCode,provinceName,namePy) values(?,?,?,?,?)";
    ps = con.prepareStatement(sql);for(int i=0;i<4;i++){
    if(ExcelUtils.getStringValue(row,i)==null){
    System.out.println(ExcelUtils.getStringValue(row,i));
    }else{
    ps.setString(i+1, ExcelUtils.getStringValue(row,i));
    ps.setString(5, firstPy);
    }
    ps.setInt(1, cell0);
    ps.setInt(3, cell2);
    System.out.print(ExcelUtils.getStringValue(row,i)+"/");
    }
    System.out.println("");
    ps.executeUpdate();System.out.println(value);
    }
    }
    } catch (Exception e) {
    System.out.println(e);
    }
    }

      

  3.   

    就是先读excel,具体读excel代码楼上的应该可以,
    读到excel后读行和列,然后循环出来,插入到数据库大体思路是这样
      

  4.   

    呃,我的意思是,把表里的数据存到excel,不是把excel的数据导入表中
      

  5.   

    如果是oracle的话用PLSQL客户端,选中记录,然后有一个选项是copy to Excle,这样就导出数据到Excle里了,正确的话记得给分我啊
      

  6.   

    是用程序实现呢?还是想用工具实现啊。
    你是做数据备份吗?
    数据备份的话:用Object Browser有导出到Excel
    程序的话:先用SQL把数据读出来。
    再用POI或者JXL。(具体你网上查查)
      

  7.   

    poi支持将数据写入Excel中。我CSDN上面有例子,楼主可以下来看看
      

  8.   

    sqlserver 可以直接导出来!
      

  9.   

    不好意思,没说清楚,我是要在页面上实现,是给非技术人员用的,只要点击选中的某条信息就能保存到指定Excel里
      

  10.   

    上网搜下poi包,里面有java操作excel的api。
      

  11.   

    poi可以读取excel,支持office2007
      

  12.   

    poi可以读写excel,支持office2007