300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 第一篇 博客:java从数据库读取数据 并写入到excel表格中

第一篇 博客:java从数据库读取数据 并写入到excel表格中

时间:2020-05-14 21:30:19

相关推荐

第一篇 博客:java从数据库读取数据 并写入到excel表格中

今天,组长分配了查询数据库记录,并把这些记录写入到excel表格中,以前没有尝试过,借鉴了一些别人的代码,最终实现了功能,写一篇博客,总结一下这个过程。

1.准备需要用到的jar包

1.jxl.jar

2.mysql-connector-java-5.1.30.jar

网上百度,这些jar包都可以下载的

2.将下载的jar包,配置到项目当中

右击项目,选择Build Path--》Configure Build Path --》Add External JARs

然后选择你刚刚下载的jar包的路径,点击确认,这样准备工作就做好了。

3.代码部分

import java.io.File;

import jxl.*;

import jxl.write.*;

import jxl.write.biff.RowsExceededException;

import java.sql.*;

import java.util.*;

public class DBtoExcel {

/**

* 导出Excel表

* @param rs 数据库结果集

* @param filePath 要保存的路径,文件名为 fileName.xls

* @param sheetName 工作簿名称 工作簿名称,本方法目前只支持导出一个Excel工作簿

* @param columnName 列名,类型为Vector

*/

public void WriteExcel(ResultSet rs, String filePath, String sheetName, Vector columnName) {

WritableWorkbook workbook = null;

WritableSheet sheet = null;

int rowNum = 1; // 从第一行开始写入

try {

workbook = Workbook.createWorkbook(new File(filePath)); // 创建Excel文件

sheet = workbook.createSheet(sheetName, 0); // 创建名为 sheetName 的工作簿

this.writeCol(sheet, columnName, 0); // 首先将列名写入

// 将结果集写入

while(rs.next()) {

Vector col = new Vector(); // 用以保存一行数据

for(int i = 1; i <= columnName.size(); i++) { // 将一行内容保存在col中

col.add(rs.getString(i));

}

// 写入Excel

this.writeCol(sheet, col, rowNum++);

}

}catch(Exception e) {

e.printStackTrace();

}

finally {

try {

// 关闭

workbook.write();

workbook.close();

rs.close();

}catch(Exception e) {

e.printStackTrace();

}

}

}

/***

* 将数组写入工作簿

* @param sheet 要写入的工作簿

* @param col 要写入的数据数组

* @param rowNum 要写入哪一行

* @throws WriteException

* @throws RowsExceededException

*/

private void writeCol(WritableSheet sheet, Vector col, int rowNum) throws RowsExceededException, WriteException {

int size = col.size(); // 获取集合大小

for(int i = 0; i < size; i++) { // 写入每一列

Label label = new Label(i, rowNum, (String) col.get(i));

sheet.addCell(label);

}

}

public static void main(String[] args) throws SQLException {

String DRIVER = "com.mysql.jdbc.Driver";

String URL = "jdbc:mysql://localhost:3306/meritlink";//根据自己的数据库设置路径和用户名密码

String USERNAME = "root";

String USERPASSWORD = "";

String sql = "SELECT nn , COUNT(*) AS times FROM "

+ "(SELECT SUBSTRING_INDEX(NAME, '/', -2) nn ,accesstime FROM accessinfo WHERE accesstime BETWEEN'-03-31' AND '-04-01') tt "

+ "GROUP BY nn ORDER BY times DESC;"; // 根据自己的要求书写sql语句

Vector columnName = new Vector(); // 列名

columnName.add("网页名称");

columnName.add("访问次数");

// 连接数据库

ResultSet rs ;

try {

Class.forName(DRIVER);

Connection conn = DriverManager.getConnection(URL,USERNAME,USERPASSWORD);

PreparedStatement ps = conn.prepareStatement(sql);

rs = ps.executeQuery();

// 导出文件的路径和工作簿名称都可根据自己的需求修改

new DBtoExcel().WriteExcel(rs, "F:/visitinfo/day03.xls", "访问记录", columnName);

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

完成。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。