用jxl导出数据到excel
需要jxl.jar
测试结果没问题,代码:
package com; import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List; import jxl.Workbook;
import jxl.WorkbookSettings;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException; public class ExportExcel { public void exportExcel(String exportPath){
File file = new File(exportPath);
if(!file.exists()||file.isDirectory()){
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
WorkbookSettings WorkbookSettings = new WorkbookSettings();
WorkbookSettings.setEncoding("gbk"); WritableWorkbook writableWorkbook = null;
try {
writableWorkbook = Workbook.createWorkbook(file, WorkbookSettings); List<List<String>> data = getData(); int dataSize = data.size(); int maxItem = 10;//每个sheet最多能添加10条记录 int totalSheetCount = (dataSize/maxItem)+1;//总sheet数 for(int sheetIndex=0;sheetIndex<totalSheetCount;sheetIndex++){
WritableSheet sheet = writableWorkbook.createSheet("Sheet"+(sheetIndex+1), sheetIndex);
List<String> titles = data.get(0); WritableCellFormat writableCellFormat = new WritableCellFormat();//格式 TODO //添加title
for(int columnIndex=0;columnIndex<titles.size();columnIndex++){
String title = titles.get(columnIndex); try {
sheet.addCell(new Label(columnIndex, 0, title, writableCellFormat));//因为放在第一行,所以第二个参数(行Index)默认成0
} catch (RowsExceededException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}
} for(int rowIndex = sheetIndex * maxItem + 1;rowIndex<(sheetIndex * maxItem + maxItem);rowIndex++){ int dataIndex = rowIndex-sheetIndex;//数据对应的index号
List<String> items = data.get(dataIndex);//每行内容 for(int columnIndex=0;columnIndex<items.size();columnIndex++){
String content = items.get(columnIndex);//每个cell中的内容 try {
sheet.addCell(new Label(columnIndex,rowIndex-(sheetIndex * maxItem), content, writableCellFormat));
} catch (RowsExceededException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}
} if((dataIndex+1)==dataSize){//最后一条数据完成后终止
break;
} } } writableWorkbook.write(); } catch (IOException e) {
e.printStackTrace();
}finally{
if(writableWorkbook!=null){
try {
writableWorkbook.close();
} catch (WriteException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} } } /**
* 数据源
* @return
*/
public List<List<String>> getData(){
List<List<String>> data = new ArrayList<List<String>>(); List<String> titles = new ArrayList<String>();
titles.add("序号");
titles.add("姓名");
titles.add("性别");
titles.add("生日");
titles.add("电话");
titles.add("邮箱"); data.add(titles);
for(int i=0;i<20;i++){
List<String> contents = new ArrayList<String>();
contents.add((i+1)+"");
contents.add("测试人员"+(i+1));
contents.add("男");
contents.add("1990-01-01");
contents.add("1851515151"+(i+1));
contents.add("123@12"+(i+1)+".com"); data.add(contents);
} return data;
} public static void main(String[] args) {
String exportPath = "D:\\exportExcel.xls";
ExportExcel exportExcel = new ExportExcel();
exportExcel.exportExcel(exportPath);;
}
}
用jxl导出数据到excel的更多相关文章
- 分别使用POI和JXL导出数据到Excel
1.使用POI 引入jar包 <!-- poi HSSF is our port of the Microsoft Excel 97(-2007) file format (BIFF8) to ...
- jxl 导出数据到excel
优点: Jxl对中文支持非常好,操作简单,方法看名知意. Jxl是纯javaAPI,在跨平台上表现的非常完美,代码可以再windows或者Linux上运行而无需重新编写 支持Excel 95-2000 ...
- JXL 读取 Excel java中jxl导出数据到excel的例子 上传文件
2010-10-14 19:17:06 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info 信息: Entferne Dat ...
- Java操作Jxl实现导出数据生成Excel表格数据文件
实现:前台用的框架是Easyui+Bootstrap结合使用,需要引入相应的Js.Css文件.页面:Jsp.拦截请求:Servlet.逻辑处理:ClassBean.数据库:SQLserver. 注意: ...
- 1.ASP.NET MVC使用EPPlus,导出数据到Excel中
好久没写博客了,今天特地来更新一下,今天我们要学习的是如何导出数据到Excel文件中,这里我使用的是免费开源的Epplus组件. 源代码下载:https://github.com/caofangshe ...
- 导出数据到Excel --使用ExcelReport有感
先看图,这是几个月前用NPOI写的导出数据到Excel,用了上百行代码,而且难控制,导出来也比较难看 excel打开的效果 下面是我用ExcelReport类库导出到Excel的操作 1.首先引用Ex ...
- 使用Open xml 操作Excel系列之二--从data table导出数据到Excel
由于Excel中提供了透视表PivotTable,许多项目都使用它来作为数据分析报表. 在有些情况下,我们需要在Excel中设计好模板,包括数据源表,透视表等, 当数据导入到数据源表时,自动更新透视表 ...
- Dynamics CRM导出数据到Excel
原创地址:http://www.cnblogs.com/jfzhu/p/4276212.html 转载请注明出处 Pivot Table是微软BI的一个重要工具,所以这里讲一下Dynamics CRM ...
- MVC导出数据到EXCEL新方法:将视图或分部视图转换为HTML后再直接返回FileResult
导出EXCEL方法总结 MVC导出数据到EXCEL的方法有很多种,常见的是: 1.采用EXCEL COM组件来动态生成XLS文件并保存到服务器上,然后转到该文件存放路径即可: 优点:可设置丰富的EXC ...
随机推荐
- Linux磁盘及文件系统管理
在LINUX中我们知道一个很重要的概念,那就是"一切皆文件",这里的一切表示所有在LINUX系统的对象,自然也包括了LINUX中的硬盘设备.在LINUX中所有设备都被抽象成一个文件 ...
- php连接多数据库
<?php $conn1=mysql_connect('localhost','root','','new_link '); $conn2=mysql_connect('localhost',' ...
- 对C++对象实例化的测试
#include <iostream> using namespace std; class class1 { public: class1(){ } class1(int i ){ } ...
- BizTalk 开发系列(四十一) BizTalk 2010 BAM 安装手记
使用64位系统可以支持更大的内存,现在服务器基本上都使用64位系统.微软从Windows Server 2008 R2开始服务器版的操作系统也只支持64位了,不过对于像BizTalk这种“繁杂的东西” ...
- 【iCore3 双核心板_ uC/OS-III】例程九:任务信号量
实验指导书及代码包下载: http://pan.baidu.com/s/1c1W29uK iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
- python(1)
1.适配中文 #coding-utf-8 #coding: utf-8 2.格式化输出,此时的转义字符不能用\,只能用% print 'growth rate : %d \%' % 7 5 3 Tru ...
- c语言中的指针问题
“*”符号的作用在C语言中有两种: 1.声明该变量是指针,例如:int * p;//表示声明一个int类型的指针,变量名为p 2.在指针运算时,表示取这个地址上的内容,例如 temp = *p;// ...
- 【java基础学习】泛型
泛型 1. 泛型类(声明的泛型类型静态方法不能使用) class Tools<T>{ private T t; public void set(T t){ this.t = t; } pu ...
- RabbitMQ使用相关笔记
#运行各示例脚本 [1] 1. 下载各语言的示例代码 https://github.com/rabbitmq/rabbitmq-tutorials 2. 安装pip,命令"yum -y in ...
- vmware centos6.5 net 配置
使用NAT模式 虚拟机网络连接使用NAT模式,物理机网络连接使用Vmnet8. 虚拟机设置里面——网络适配器,网络连接选择NAT模式. 虚拟机菜单栏—编辑—虚拟网络编辑器,选择Vmnet8 NAT模式 ...