加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

java的poi技术写Excel的Sheet

发布时间:2020-12-11 23:58:16 所属栏目:MySql教程 来源:网络整理
导读:在这之前写过关于java读,写Excel的blog如下: 然而,这篇blog主要内容是关于Excel里面怎样去写Sheet数据。 那么在Excel里面什么叫做Sheet呢?如下图红色框里面的内容就是Excel的Sheet了。 我们需要知道怎样创建一个Sheet,下面是一个Sample: Workbook wb =

在这之前写过关于java读,写Excel的blog如下:

然而,这篇blog主要内容是关于Excel里面怎样去写Sheet数据。

那么在Excel里面什么叫做Sheet呢?如下图红色框里面的内容就是Excel的Sheet了。

我们需要知道怎样创建一个Sheet,下面是一个Sample:

Workbook wb = HSSFWorkbook(); Sheet sheet1 = wb.createSheet("new sheet" Sheet sheet2 = wb.createSheet("second sheet" String safeName = WorkbookUtil.createSafeSheetName("[O'Brien's sales*?]"); Sheet sheet3 = FileOutputStream fileOut = FileOutputStream("workbook.xls" fileOut.close();

看了以后,会不会觉得So easy!这是因为Apache的poi给我们封装了很多方法,提供了很好的接口。

下面是我做的一个Demo,这个Demo的数据流如下:

MySQL数据库 -- > Demo 程序 -- > Excel 文件

我们的Demo程序会从MySQL数据库中读取数据,然后把数据写入到Excel文件中。

在MySQL数据库中,我们会用到两张表:

`no` () `name` () COLLATE utf8_bin `` () COLLATE utf8_bin `ranking` () `address` () COLLATE utf8_bin ) ENGINEInnoDB AUTO_INCREMENT CHARSETutf8 COLLATE `student_no` () `school_no` () `name` () COLLATE utf8_bin `address` () COLLATE utf8_bin `birthdate` () COLLATE utf8_bin `phone` () COLLATE utf8_bin `school_no` (`school_no`) ) ENGINEInnoDB AUTO_INCREMENT CHARSETutf8 COLLATEutf8_bin;

在Excel文件中,我们要做的是在'School Summary' Sheet里面写入School的信息,而对于其他的Sheet,我们会把Shool的名称命名为Sheet的Name,然后在每一个Sheet里面写入在这个Shool里面的Student的信息。

两张表里面数据,大家可以通过blog末尾的下载链接获得。

List schools = WriteExcel writeExcel = }

String URL = "jdbc:mysql://localhost:3306/school" String USER_NAME = "root" String PASSWORD = "password1" String TARGET_FILE_PATH = "lib/excel_resources/school.xls" String SUMMARY = "Shool Summary" String[] TITLES = { "S/N","Name","Description","Ranking","Address" String[] STUDENT_TITLE = { "S/N","Birth Date","Phone","Address" }

Logger logger = Logger.getLogger(ConnectionUtil. logger.debug("-------- MySQL JDBC Connection Testing ------------" Connection connection = Class.forName("com.mysql.jdbc.Driver" } logger.error("Where is your MySQL JDBC Driver?" logger.info("MySQL JDBC Driver Registered!" connection = (connection != logger.info("connecte successfully!" } logger.error("Connection Failed! Check output console" (conn != logger.info("closing connection begin!" logger.info("closing connection end!" } } logger.info("connection is not null!" }

Logger logger = Logger.getLogger(SchoolDAO. List Connection conn = PreparedStatement preparedStatement = ,preStat = ResultSet rs = ,rs_student = List schools = ArrayList conn = String sql = "select * from t_school order by no" preparedStatement = rs = school_no = rs.getInt(1 (school_no > 0 School school = school.setName(rs.getString("name" school.setAddrss(rs.getString("address" school.setDesc(rs.getString("desc" school.setRanking(rs.getString("ranking" String studentSQL = "select * from t_student where school_no = ? " preStat = preStat.setInt(1 rs_student = List students = ArrayList<> Student student = std_no = rs_student.getInt(1 student.setName(rs_student.getString("name" student.setBirthdate(rs_student.getString("birthdate" student.setPhone(rs_student.getString("phone" student.setAddress(rs.getString("address" } } (rs != } (preparedStatement != } }

Logger logger = Logger.getLogger(WriteExcel. writeExcel(List (schools == || schools.size() == 0 FileOutputStream fileOut = Workbook wb = Sheet shool_sheet = shool_sheet.setAutobreaks( Row row = shool_sheet.createRow(0 String[] titles = num = 0 Cell cell = row.createCell(num++ rowNum = 1 row = shool_sheet.createRow(rowNum++ Cell cell = row.createCell(0 cell = row.createCell(1 cell = row.createCell(2 cell = row.createCell(3 cell = row.createCell(4 List students = (students != && students.size() > 0 Sheet student_sheet = student_sheet.setAutobreaks( Row student_row = student_sheet.createRow(0 String[] student_titles = num = 0 Cell student_cell = student_row.createCell(num++ stuRowNum = 1 student_row = student_sheet.createRow(stuRowNum++ Cell student_cell = student_row.createCell(0 student_cell = student_row.createCell(1 student_cell = student_row.createCell(2 student_cell = student_row.createCell(3 student_cell = student_row.createCell(4 fileOut = } } } logger.info("done" }

List students = ArrayList setNo( .no = .name = .desc = .ranking = .addrss = List setStudents(List .students = }

setStudentNo( .studentNo = .name = .address = .birthdate = .note = .phone = }

源码下载:

测试数据下载:

========================================================

More reading,and english is important.

I'm Hongten

大哥哥大姐姐,觉得有用打赏点哦!多多少少没关系,一分也是对我的支持和鼓励。谢谢。Hongten博客排名在100名以内。粉丝过千。Hongten出品,必是精品。

E | hongtenzone@foxmail.com ?B |?

========================================================

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读