1.使用poi生成文件

package com.mi.entity;

import java.util.Date;

public class Student {
private int id;
private String name;
private int age;
private Date birth; public Student(int id, String name, int age, Date birth) {
super();
this.id = id;
this.name = name;
this.age = age;
this.birth = birth;
} }

生成excel文件代码

package com.mi.util;

import java.io.File;
import java.io.FileOutputStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List; import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook; import com.mi.entity.Student; public class CreateSimpleExcelToDisk { /**
* 手工创建一个包含student的list
* @return
* @throws Exception
*/
private static List<Student> getStudent() throws Exception {
List<Student> list = new ArrayList<>();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");
Student user1 = new Student(1, "张三", 16, sdf.parse("1997-03-12"));
Student user2 = new Student(2, "李四", 17, sdf.parse("1996-08-12"));
Student user3 = new Student(3, "王五", 26, sdf.parse("1985-11-12"));
list.add(user1);
list.add(user2);
list.add(user3); return list;
}
public static void main(String[] args) throws Exception {
//第一步,创建一个webbook文件,对应一个excel文件
HSSFWorkbook wb = new HSSFWorkbook();
//第二部,在excel中添加一个sheet工作簿,参数为该工作簿名字,不写为默认;
HSSFSheet sheet = wb.createSheet("学生表1");
//第三部,做sheet中添加表头第0行,注意老版本poi对excel的行数列数有限制short
HSSFRow row = sheet.createRow((int)0);
//第四部,创建单元格表头 设置表头居中
HSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);//创建一个居中格式 //创建具体盛放数据的单元格,可以考虑把cell抽成共通对象去使用
HSSFCell cell = row.createCell((int) 0);
cell.setCellValue("学号");
cell = row.createCell((int) 1);
cell.setCellValue("姓名");
cell = row.createCell((int) 2);
cell.setCellValue("年龄");
cell = row.createCell((int) 3);
cell.setCellValue("生日"); //第五部,写入实体数据 实际应用中这些数据应该是从数据库中得到
List<Student> list = CreateSimpleExcelToDisk.getStudent();
for(int i=0;i<list.size();i++){
//每次新建一行然后在新行中插入list中的数据对象,有点繁琐,也许有更好的封装方法,留待后看
row = sheet.createRow((int)i+1);
row.createCell((int)0).setCellValue(list.get(i).getId());
row.createCell((int)1).setCellValue(list.get(i).getName());
row.createCell((int)2).setCellValue(list.get(i).getAge());
row.createCell((int)3).setCellValue(new SimpleDateFormat("yyyy-mm-dd").format(list.get(i).getBirth())); } //第六部,将文件保存到指定位置
FileOutputStream fout = new FileOutputStream("D:/student.xls");
wb.write(fout);
fout.close();
}
}

效果:

注:.首先下载poi-3.6-20091214.jar,下载地址如下:

http://download.csdn.net/detail/evangel_z/3895051

2.使用JXL生成文件

package com.mi.util;

import java.io.File;

import jxl.Workbook;
import jxl.format.Border;
import jxl.format.BorderLineStyle;
import jxl.format.Colour;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook; public class JxlExcelCreateTool { public static void main(String[] args) throws Exception {
writeExcel();
} public static void writeExcel() throws Exception {
// 第一步创建excel文件,并决定excel的路径和文件名
WritableWorkbook wwb = Workbook.createWorkbook(new File("D:/hello.xls")); // 第二部,创建工作簿,指定该工作簿的名称和位置'
WritableSheet sheet = wwb.createSheet("test sheet1", 0); // 第三部,设置表格指定列的列宽
sheet.setColumnView(0, 14);
sheet.setColumnView(1, 12);
sheet.setColumnView(2, 25);
sheet.setColumnView(3, 20);
sheet.setColumnView(4, 12);
sheet.setColumnView(5, 9); // 第四部,往工作簿中插入数据,设定字体:微软雅黑,24,加粗
// 创建字体对象
WritableFont titleFont = new WritableFont(WritableFont.createFont("微软雅黑"), 24, WritableFont.NO_BOLD);
WritableFont contentFont = new WritableFont(WritableFont.createFont("楷体 _GB2312"), 12, WritableFont.NO_BOLD);
WritableCellFormat titleFormat = new WritableCellFormat(titleFont);
WritableCellFormat contentFormat = new WritableCellFormat(contentFont);
WritableCellFormat contentFormat2 = new WritableCellFormat(contentFont); contentFormat.setBorder(Border.ALL, BorderLineStyle.THIN, Colour.BLACK);
// 设置格式居中对齐
titleFormat.setAlignment(jxl.format.Alignment.CENTRE);
contentFormat.setAlignment(jxl.format.Alignment.CENTRE);
contentFormat2.setAlignment(jxl.format.Alignment.CENTRE); // 将定义好的单元格绑定数据添加到工作簿中
sheet.mergeCells(0, 0, 6, 0); // 合并单元格A-G列共7列
sheet.addCell(new Label(0, 0, "广州XXX大学2009级研究生课程考试成绩册", titleFormat));
sheet.addCell(new Label(0, 1, "课程名称", contentFormat2));
sheet.mergeCells(1, 1, 6, 1); // 合并单元格B-G列共7列
sheet.addCell(new Label(1, 1, "大学数学", contentFormat2));
sheet.addCell(new Label(0, 2, "院所教研室", contentFormat2));
sheet.mergeCells(1, 2, 6, 2); // 合并单元格B-G列共7列
sheet.addCell(new Label(0, 3, "填表人", contentFormat2));
sheet.addCell(new Label(2, 3, "教研室负责人", contentFormat2)); String th[] = { "学号", "姓名", "学院", "平时成绩", "期末成绩", "总成绩", "补考成绩" };
for (int i = 0; i < th.length; i++) {
sheet.addCell(new Label(i, 4, th[i], contentFormat2));
}
// 这里的数据可以从数据库里获取,个人建议将这些抽成共通的方法,提供导入数据,用时调用即可
int xh = 200901;
String xm = "王佳佳";
String xy = "XXX信息技术学院";
String space = " ";
int cj = 50;
String bk = "补 80"; for (int j = 5; j < 10; j++) {
sheet.addCell(new Label(0, j, "" + xh + j + "", contentFormat));
sheet.addCell(new Label(1, j, xm + j, contentFormat));
sheet.addCell(new Label(2, j, xy, contentFormat));
sheet.addCell(new Label(3, j, space, contentFormat));
sheet.addCell(new Label(4, j, space, contentFormat));
sheet.addCell(new Label(5, j, "" + cj + j + "", contentFormat));
sheet.addCell(new Label(6, j, "" + bk + "", contentFormat));
} // 第五部,写入工作表完毕,关闭流
wwb.write();
wwb.close();
}
}

效果:

Java生成excel导出文件(使用poi+JXL)的更多相关文章

  1. java 生成Excel开门篇

    本随笔的Excel所用的poi jar包(3.17版本)链接: https://pan.baidu.com/s/1gaa3dJueja8IraUDYCSLIQ 提取密码: 9xr7 简单实现:两个类: ...

  2. oracle PL/SQL调用Java生成Excel

    现在有个需求,  要求编写oracle存储过程生成Excel文件到指定目录,  但是oracle自己的API貌似不太给力,  所以只能通过另一种更强大的语言来实现了  ——Java.有一个Java框架 ...

  3. JAVA生成EXCEL模板

    JAVA生成excel模板,支持1.必填字段前加 红色 * 2.定义可选值下拉列表 valList3.定义名称并通过名称设置可选值 refName(名称在sheet2,sheet2自动隐藏)4.支持设 ...

  4. [转]java生成 excel 并导出文件

    原文:https://blog.csdn.net/xunwei0303/article/details/53213130 目前,比较常用的实现Java导入.导出Excel的技术有两种Jakarta P ...

  5. Java操作Excel(使用POI)

    背景说明 以前写过使用 JXL 操作Excel的例子,但JXL对于Excel 2007版本以后的文件(即扩展名为 .xlsx)无法读取,也找不到可以支持的包.所以,有时不得不用 POI 来操作Exce ...

  6. java生成excel

    package test.poi; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream; ...

  7. java生成excel报表文件

    此次简单的操作将数据从数据库导出生成excel报表以及将excel数据导入数据库 首先建立数据库的连接池: package jdbc; import java.io.FileInputStream; ...

  8. 两种方式实现java生成Excel

    Web应用中难免会遇到需要将数据导出并生成excel文件的需求.同样,对于本博客中的总结,也是建立在为了完成这样的一个需求,才开始去了解其实现形式,并且顺利完成需求的开发,先将实现过程总结于此.本博文 ...

  9. JAVA实现Excel的读写--poi

    上一篇为大家介绍了通过xls.jar的方式生成Excel的方法,本篇就为大家再介绍一下通过poi方式实现Excel文件的读写操作,内容很简单,代码注释很清晰. 1.生成Excel文件: import ...

随机推荐

  1. AQS 与 LockSupport

    1.结构 Lock的实现类其实都是构建在AbstractQueuedSynchronizer上,每个Lock实现类都持有自己内部类Sync的实例 二.二元信号量 A semaphore initial ...

  2. delphi android 录像(调用Java的功能)

    delphi xe系列自带的控件都无法保存录像,经网友帮忙,昨天终于实现了录像功能(但有个问题是录像时无画面显示),程序主要使用了JMediaRecorder,MediaRecorder的使用方法可参 ...

  3. C语言解析json类型数据

    转自:http://buluzhai.iteye.com/blog/845404   首先感谢作者!! 我使用的是cJSON:http://sourceforge.net/projects/cjson ...

  4. Ubuntu+Redis主从配置

    软件环境: OS:ubuntu-12.04-desktop-amd64 Redis:redis-2.8.13.tar.gz TCL:tcl8.6.2-src.tar.gz VMware:vmware ...

  5. 1011 最大公约数GCD

    1011 最大公约数GCD 基准时间限制:1 秒 空间限制:131072 KB 输入2个正整数A,B,求A与B的最大公约数. Input 2个数A,B,中间用空格隔开.(1<= A,B < ...

  6. Magento Error – The directory is not writable by server.

    When trying to use the insert image functionality in Magento if you receive an error saying: “The di ...

  7. Sql server与Excel的数据互通导入导出

    现在,我先从Sql server数据表导出到Excel中,再从Excel数据表导出到Sql server中: 一.Sql server数据表导出到Excel中: 1.新建一个Excel,选择“数据”菜 ...

  8. iOS初级数据持久化 沙盒机制 归档与反归档

    数据持久化就是数据保存成文件,存储到程序中的沙盒中. 沙盒构成 Document 存储用户数据,需要备份的信息 Caches 缓存文件, 程序专用的支持文件 Temp 临时文件 通过代码查找程序沙盒的 ...

  9. androidSDK配置环境变量

    android的开发人员来说,首先要做的就是环境变量的配置.java是需要配置环境变量的.当然,安卓的环境变量需要我们配置adb的使用,将开发平台的两个工具包配置到环境变量里. 工具/原料   and ...

  10. zookeeper节点数与watch的性能测试

    zookeeper中节点数量理论上仅受限于内存,但一个节点下的子节点数量受限于request/response 1M数据 (size of data / number of znodes) zooke ...