java导出Excel通用方法

java 导出数据到excel 之 WritableWorkbook 立即下载

java导出Excel通用方法,只需要一个list 集合。通用方法改进之处踊跃提出

package oa.common.utils;
import java.io.OutputStream;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.ServletActionContext;
import java.lang.reflect.Field;

import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.Border;
import jxl.format.BorderLineStyle;
import jxl.format.VerticalAlignment;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
/***
 * @author lsf
 */
public class ExportExcel {
 /***************************************************************************
  * @param fileName EXCEL文件名称
  * @param listTitle EXCEL文件第一行列标题集合
  * @param listContent EXCEL文件正文数据集合
  * @return
  */
 public  final static String exportExcel(String fileName,String[] Title, List<Object> listContent) {
  String result="系统提示:Excel文件导出成功!";  
  // 以下开始输出到EXCEL
  try {    
   //定义输出流,以便打开保存对话框______________________begin
   HttpServletResponse response=ServletActionContext.getResponse();
   OutputStream os = response.getOutputStream();// 取得输出流      
   response.reset();// 清空输出流      
   response.setHeader("Content-disposition", "attachment; filename="+ new String(fileName.getBytes("GB2312"),"ISO8859-1"));
// 设定输出文件头      
   response.setContentType("application/msexcel");// 定义输出类型    
   //定义输出流,以便打开保存对话框_______________________end

   /** **********创建工作簿************ */
   WritableWorkbook workbook = Workbook.createWorkbook(os);

   /** **********创建工作表************ */

   WritableSheet sheet = workbook.createSheet("Sheet1", 0);

   /** **********设置纵横打印(默认为纵打)、打印纸***************** */
   jxl.SheetSettings sheetset = sheet.getSettings();
   sheetset.setProtected(false);


   /** ************设置单元格字体************** */
   WritableFont NormalFont = new WritableFont(WritableFont.ARIAL, 10);
   WritableFont BoldFont = new WritableFont(WritableFont.ARIAL, 10,WritableFont.BOLD);

   /** ************以下设置三种单元格样式,灵活备用************ */
   // 用于标题居中
   WritableCellFormat wcf_center = new WritableCellFormat(BoldFont);
   wcf_center.setBorder(Border.ALL, BorderLineStyle.THIN); // 线条
   wcf_center.setVerticalAlignment(VerticalAlignment.CENTRE); // 文字垂直对齐
   wcf_center.setAlignment(Alignment.CENTRE); // 文字水平对齐
   wcf_center.setWrap(false); // 文字是否换行
   
   // 用于正文居左
   WritableCellFormat wcf_left = new WritableCellFormat(NormalFont);
   wcf_left.setBorder(Border.NONE, BorderLineStyle.THIN); // 线条
   wcf_left.setVerticalAlignment(VerticalAlignment.CENTRE); // 文字垂直对齐
   wcf_left.setAlignment(Alignment.LEFT); // 文字水平对齐
   wcf_left.setWrap(false); // 文字是否换行   
 

   /** ***************以下是EXCEL开头大标题,暂时省略********************* */
   //sheet.mergeCells(0, 0, colWidth, 0);
   //sheet.addCell(new Label(0, 0, "XX报表", wcf_center));
   /** ***************以下是EXCEL第一行列标题********************* */
   for (int i = 0; i < Title.length; i++) {
    sheet.addCell(new Label(i, 0,Title[i],wcf_center));
   }   
   /** ***************以下是EXCEL正文数据********************* */
   Field[] fields=null;
   int i=1;
   for(Object obj:listContent){
	   fields=obj.getClass().getDeclaredFields();
	   int j=0;
	   for(Field v:fields){
		   v.setAccessible(true);
		   Object va=v.get(obj);
		   if(va==null){
			   va="";
		   }
		   sheet.addCell(new Label(j, i,va.toString(),wcf_left));
		   j++;
	   }
	   i++;
   }
   /** **********将以上缓存中的内容写到EXCEL文件中******** */
   workbook.write();
   /** *********关闭文件************* */
   workbook.close();   

  } catch (Exception e) {
   result="系统提示:Excel文件导出失败,原因:"+ e.toString();
   System.out.println(result); 
   e.printStackTrace();
  }
  return result;
 }
}

测试:

/**
 * 导出excel
 * @return
 */
public String excelPage(){
	ExportExcel excel=new ExportExcel();
	String str="";
	try {
		str = new String(getHTTP.getRequest().getParameter("wineOrg.orgName").getBytes("iso8859-1"),"UTF-8");
	} catch (UnsupportedEncodingException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	wineOrg.setOrgName(str);
	List<Object> li=service.exportExcel(wineOrg);
	String[] Title={"机构ID","会员编号","类别","名称","省ID","省名称","城市ID","城市名称","详细地址","联系人","性别","联系手机","联系电话","传真","邮箱","QQ","生日","积分","客户等级","现金账户余额","结算方式","客户类型","购买次数","购买支数","创建人ID","创建人姓名","create_time","del","STS","备注","负责人ID","负责人姓名","审核标识","审核人ID	","审核人姓名","审核日期","分配人ID","分配人姓名","分配日期","修改人ID","修改人姓名	","修改时间"};
	excel.exportExcel("客户资料信息.xls",Title, li); 
	return SUCCESS;
}


【Bluetooth|蓝牙开发】三、一篇文章,带你总览蓝牙协议 1、开篇词 2、蓝牙开发入门 3、蓝牙协议栈总览 4、蓝牙协议栈——物理层 5、蓝牙协议栈——链路层 6、蓝牙协议栈——传输层 7、蓝牙协议栈——L2CAP协议 8、蓝牙协议栈——ATT协议 9、蓝牙协议栈——GATT协议 10、蓝牙通信流程分析 11、蓝牙协议栈——Bluez交叉编译 12、蓝牙调试工具汇总 阅读详情

相关推荐

哨兵一号数据下载

哨兵1号数据的下载过程

weixin_59617499的博客 5134

Java处理excel两种不同的方式

将生成的excel文件转为输入流,然后上传OSS,不用在本地存储该文件对象。

loongshawn的博客 1万+

ThingsBoard 3.1.1版本在window本地运行之TB-Gateway服务搭建(三)

TB-gateway服务是TB不可或缺的部分,很多的协议都需要TB-gateway来做分类处理,今天我们就来做TB-Gateway服务搭建。

晚点遇见你,余生都是你! 2473

在做excel导出时如何将workbook直接写在输出流中

参考网址 https://blog.youkuaiyun.com/u011109420/article/details/51330677 https://blog.youkuaiyun.com/u012116457/article/details/49780677 Java 后台 Excel 文件生成后转化为字节流 java excel 使用 poi组件, HSSFWorkbook workBook = ...

weixin_30825199的博客 5757

S32K144之芯片锁死解锁——进入HardFault

S32K144之芯片锁死解锁——进入HardFault 最近遇到因为软件代码问题导致进入HardFault,从而使芯片锁死,来简述具体现象以及最终的解锁方法。 导致原因:如下图,在进行Gpio的相关配置,case后面没有break语句,导致芯片进入HardFault。 现象1:reset引脚持续为低,reset指示灯常亮。如果掉电后重新上电,通过示波器抓取reset引脚的波形,会有510us左右或者29ms左右的低电平脉冲出现,一般会出现两三次左右并且没有规矩,持续几秒的高电平之后,reset脚再次被拉低

weixin_41935674的博客 8269

随机化策略——随机变量rand、约束constraint、权重dist、随机数产生示例

文章目录一、随机变量类型1.1.rand随机变量1.2.randc随机变量二、随机化约束2.1.constraint指定约束范围2.1.1.关系操作符约束(>、<、=、>=、<=)2.1.2.范围操作符约束(inside)2.1.3.权重分布约束(dist)2.1.4.条件约束(if-else; ->)三、启动随机化——randomize( )函数四、关闭或打开随机变...

Mr.翟的博客 2万+

java实现Excel的导入导出

一.从数据库将数据导出到excel表格 public class JxlExcel { public static void main(String[] args) { //创建Excel文件 String[] title= {"姓名","课程名","分数"}; File file=new File("f:/sheet1.xls"); try { file.createNewFile(); //创建工作簿 WritableWorkbook workbook=Workbook.creat

qq_33272409的博客 1397

操作系统笔记(含王道计算机考研——操作系统课件)

操作系统(OS) 笔记根据B站王道计算机考研——操作系统视频整理所得,视频链接:https://b23.tv/0I2qex 视频中所用课件:链接:https://pan.baidu.com/s/101bFWm0Tv0emNpEneidYPA 提取码:y3dd 1.计算机系统概述 1.简介 什么是操作系统? 操作系统(Operating Ststem, OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境,它是

拧发条鸟的博客 6万+

HSSFWorkbook导出Excel

HSSFWorkbook导出Excel import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFFont; import org.apache.poi.hssf.usermo

巴黎左岸 · 荼靡花开 1200

C# 零基础入门知识点汇总

本文属于C#零基础入门之百识百例系列目录文章。此系列文章已经完结,欢迎大家点击文中文章链接查看详情进行学习。

陈言必行 -- Unity游戏开发领域优质博主 5347

学Simulink——线控转向(Steer‑By‑Wire, SBW)路感模拟与回正控制仿真

本文详细介绍了线控转向(SBW)系统的Simulink建模方法,重点讲解了路感模拟与回正控制的实现原理。文章首先分析了SBW系统结构,建立了方向盘和前轮的动力学方程;随后分步骤演示了Simulink建模过程,包括方向盘二阶动力学、前轮位置闭环控制、路感反馈计算等核心模块;最后通过仿真验证了转向跟随性能、路感反馈效果和自动回正功能。文中还提供了工程实现的关键参数和注意事项,为开发真实的SBW系统提供了实用指导。该模型可扩展应用于主动转向、故障注入等高级功能开发。

xiaoheshang_123的博客 39

java 导出Excel表格通用方法

目录背景POI版本自定义注解逻辑代码实现测试 背景 最近项目需要导出数据到Excel 表格中,在包装好获取表格方法之后,剩下的就是往单元格中添加数据和添加标题。写了一两个地方之后发现设置数据这块东西基本都是类似的重复代码,无非就是设置的数据不一样而已,看到这样的代码就很烦,想把它们封装起来,首先想到的就是通过自定义注解的方式来实现。 POI版本 我用的是POI导出Excel,版本如下: <!-- https://mvnrepository.com/artifact/org.apache.poi/poi

做一个有思想的技术人 2274

【100分- 求最多可以派出多少支团队】(题目+思路+Java&C++&Python解析+在线测试)

用数组代表每个人的能力,一个比赛活动要求参赛团队的最低能力值为N,每个团队可以由1人或者2人组成,且1个人只能参加1个团队,计算出最多可以派出多少只符合要求的团队。

m0_73659489的博客 313

java导出数据Excel本地和请求通用方法

数据导出到Excel几乎是所有客户都会提出的一个需求。下面我就分享一下我的代码。 代码分为本地和有请求响应的,主方法相同 jar包 然后就是正式代码了!! 主方法: @Test public void main1() throws Exception { String sheetName = &quot;部门统计表单&quot;; String titleName = &quot;部门数据统计...

qq_40887780的博客 483

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

java导出excel 方式_java导出Excel通用方法

数据导出到Excel几乎是所有客户都会提出的一个需求。下面我就分享一下我的代码。首先需要引入的jar包:然后就是正式代码了。package lcy._41_50;import java.io.FileOutputStream;import java.io.OutputStream;import java.net.URLEncoder;import javax.servlet.http.HttpSe...

weixin_29994499的博客 259

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

导入和导出Excel通用方法

Java导出Excel通用方法,只需要一个list 集合。通用方法改进之处踊跃提出 [java] view plain copy package oa.common.utils;   import java.io.OutputStream;   import java.util.List;   import javax.servlet.

Kei's Blog 5099

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

java导出excel的方式_java导出excel通用方法

首先需要引入的jar包:正式代码了。import java.io.FileOutputStream;import java.io.OutputStream;import java.net.URLEncoder;import javax.servlet.http.HttpServletResponse;import org.apache.poi.hssf.usermodel.HSSFCell;imp...

weixin_35544490的博客 464
上一篇: 苹果Mac OS X操作系统下,隐藏文件是否显示有很多种设置方法
下一篇: MySQL索引类型一览 让MySQL高效运行起来 mysql索引注意事项
评论 16
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值