qq_31071631 2016-01-21 07:38 采纳率: 0%
浏览 1499

导出数据到excel求解) 报路径的错但是路径是对的

package com.javen.excel;

import java.io.File;

import java.io.IOException;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import com.javen.db.JDBCConn;

import jxl.Workbook;

import jxl.write.Label;

import jxl.write.WritableSheet;

import jxl.write.WritableWorkbook;

/**

  • 主要是用来创建excel工作薄
    */

    public class MysqlToExcelUp {

    public void WriteExcel(File fileName,ResultSet rs) throws Exception{

          //创建一个新的工作薄,fileName 包含了文件名以及路径。  
          WritableWorkbook wwb = null;  
          WritableSheet ws = null;  
          try {  
            wwb = Workbook.createWorkbook(fileName);  
            ws = wwb.createSheet("sheettest", 0);//给工作薄添加一个工作表,命名为 sheettest.  
          } catch (IOException e) {  
           // TODO Auto-generated catch block  
           e.printStackTrace();  
          }  
    
          int i = 0;  
          int j = 0;  
    
          //下面for循环里面的rs.getMetaData().GetColumnCount() 获取数据库中某个表的列总数  
          for (int k = 0; k < rs.getMetaData().getColumnCount(); k++)   
          {  
           //rs.getMetaData().getColumnName()获取表的列名。并添加到 excel表Label里,Label(i,j,s)表示i列j行添加s,s必须是String  
           ws.addCell(new Label(k, 0, rs.getMetaData().getColumnName(k + 1)));  
          }  
          while (rs.next()) {  
           //算法,依次添加数据库中所有符合的数据到excel中  
           for (int k = 0; k < rs.getMetaData().getColumnCount(); k++) {  
            ws.addCell(new Label(k, j + i + 1, rs.getString(k + 1)));  
           }  
           i++;  
          }  
          wwb.write();//写入工作薄  
          wwb.close();//关闭工作薄  
          rs.close();//关闭结果集  
         }  
    
         public static void main(String[]args){  
          MysqlToExcelUp mexel = new MysqlToExcelUp();  
          JDBCConn myjdbc = new JDBCConn();  
          myjdbc.getConnection();  
          String sql = "select * from stu";  
          Statement stm = null;  
          ResultSet rs = null;  
          File newFile = new File("D:\\excel.xls");  
          try {  
           stm = myjdbc.getConnection().createStatement();  
           rs = stm.executeQuery(sql);  
          } catch (SQLException e) {  
           // TODO Auto-generated catch block  
           e.printStackTrace();  
          }  
          try {  
           mexel.WriteExcel(newFile , rs);  
          } catch (Exception e) {  
           // TODO Auto-generated catch block  
           e.printStackTrace();  
          }  
          try {  
           myjdbc.getConnection().close();  
           //关闭数据库连接  
          } catch (SQLException e) {  
           // TODO Auto-generated catch block  
           e.printStackTrace();  
          }  
    

    }

    }

    java.io.FileNotFoundException: D:\excel.xls (拒绝访问。)报这样的错

  • 写回答

3条回答

  • tony4geek 2016-01-21 07:40
    关注

    D:\excel.xls 右击看看文件时不是只读。

    评论

报告相同问题?

悬赏问题

  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决