导出excel按照指定格式
1.项目有个需求,要按照特定格式 导出Excel表格。 正常的都是一行 ,下面是数据。这次有个变动,就是每隔 几列要换行,下面是数据。在下面是数据部分。花了一上午写了下需求,不难但是花时间
//实现特定的业务需求 每隔7行换行
String value = builder.toString().substring(,builder.length()-);
String[] valueStr = value.split(",");
String str = "";
for(int k = ;k<valueStr.length;k++){
int zhengshu = k%;
while (zhengshu== && StringUtils.isNotEmpty(str)){
listStr.add(str.substring(,str.length()-));
str = "";
}
str += valueStr[k]+",";
}
package com.zhuanche.util.excel; import javax.servlet.http.HttpServletResponse;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.List; /**
* 导出的excel 需要添加额外的输出
*/
public class SupplierFeeCsvUtils {
public static final Integer downPerSize = ;
public static final String tab = "\t";
private OutputStreamWriter osw;
private BufferedWriter bw = null; public OutputStreamWriter getOsw() {
return osw;
} public void setOsw(OutputStreamWriter osw) {
this.osw = osw;
} public BufferedWriter getBw() {
return bw;
} public void setBw(BufferedWriter bw) {
this.bw = bw;
} public boolean exportCsvV2(HttpServletResponse response,
List<String> dataList,
List<String> headdataList,
String fileName,boolean isFirst,boolean islast,List<String> footerList,int length) throws IOException { boolean isSucess=false;
OutputStreamWriter osw = this.getOsw();
BufferedWriter bw = this.getBw();
try { if(isFirst){
response.reset();
//设置response
response.setContentType("application/octet-stream;charset=UTF-8");
response.setHeader("content-disposition", "attachment; filename="+fileName);
} if(osw == null){
osw = new OutputStreamWriter(response.getOutputStream(), "UTF-8");
osw.write(new String(new byte[] { (byte) 0xEF, (byte) 0xBB,(byte) 0xBF })); this.setOsw(osw);
}
if(bw == null){
bw = new BufferedWriter(osw);
this.setBw(bw);
} if(isFirst){
if(headdataList!=null && !headdataList.isEmpty()){
for(int k = ;k<length;k++){
bw.write(headdataList.get(k)+"\r\n");
bw.write(dataList.get(k)+"\r\n"); }
}
} if(footerList != null && !footerList.isEmpty()){
for(String data : footerList){
bw.write(data+"\r\n");
}
}
isSucess=true;
} catch (Exception e) {
isSucess=false;
}finally{
if(islast){
if(bw!=null){
try {
bw.close();
bw=null;
} catch (IOException e) {
e.printStackTrace();
}
}
if(osw!=null){
try {
osw.close();
osw=null;
} catch (IOException e) {
e.printStackTrace();
}
}
}else{
if(bw!=null){
try {
bw.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
if(osw!=null){
try {
osw.flush(); } catch (IOException e) {
e.printStackTrace();
}
}
} }
return isSucess;
} }
导出excel按照指定格式的更多相关文章
- C#导出Excel按照指定格式设置单元格属性值
最近项目中一直在写XML.Table.Excel之间的转化.之前一直都是不考虑格式的导出,今天给出一个格式,让按照格式导出,还真把我这新手为难了一翻,网上给出的资料基本一样.为了一个单元格文字变色纠结 ...
- .net解决数据导出excel时的格式问题
在项目中一般都需要将报表数据导出到EXCEL中,但经常出现导出长串数据(如身份证)到EXCEL中后显示为科学计数法的格式,或者报表中显示为001的数据导出到Excel后成了1的格式. 下面简单介绍一下 ...
- RDLC - 后台代码直接导出Excel/PDF/Word格式
最近做报表功能,用到了.net的报表组件rdlc. 其中有个功能就是后台代码直接输出Excel/PDF/Word格式的文件,网上看了些资源,做个总结: 参考地址 我直接贴出代码: //自动导出exce ...
- CRM 报表导出excel时指定sheet名
如图所示,设置PageName即可: 这样导出excel时,sheet的名就有了:
- asp.net导出Excel 按照预定格式,以及解决导出乱码
protected void ToExcel() { //新建一个Gridview,原因:避免当前窗口GridView外层没有直接跟form标签,从而避免“gridview1未包含在run='serv ...
- Asp.net导出Excel/Csv文本格式数据
刚刚开始做Excel相关的项目,所以遇到的问题不管大小都给记录一下 偶然的机会在添加数据的时候全改成了数字,结果输出的时候全自动变成了科学计数法,这是excel的强大功能,能自动识别数字和字符串,太聪 ...
- mysql数据库导出excel xml等格式文件
http://jingyan.baidu.com/article/ac6a9a5e43a62e2b653eac83.html
- POI导入导出excel(附工具类)
关于POI导出excel的功能我在前面的文章已经写过了,POI导出excel的三种方式 , 导出表格数据到excel并下载(HSSFWorkbook版) ,本篇文章主要是将导入导出功能进一步地封装,在 ...
- asp.net mvc4使用NPOI 数据处理之快速导出Excel文档
一.背景 在之前做的小项目里有一需求是:要求将一活动录入的数据进行统计,并以excel表格形式导出来,并且对表格格式要求并不高. 二.问题分析 鉴于用户只要求最终将数据库中的数据导出excel,对于格 ...
随机推荐
- js事件3-事件对象
对于每次点击一个事件,都会产生一个事件对象,这个事件对象中包含了这个事件的很多信息 我们来看看事件对象具体有哪些信息 Object.onclick=function(e){ ..... }其中的参数e ...
- egg 阻止 sql 注入,相关文章
egg 阻止 sql 注入,相关文章 网址 注意!!我们极其不建议开发者拼接 sql 语句,这样很容易引起 sql 注入!!如果必须要自己拼接 sql 语句,请使用 mysql.escape 方法. ...
- .net 异常
ArgumentNullException 当将空引用(在 Visual Basic 中为 Nothing)传递给不接受它作为有效参数的方法时引发的异常.
- IDEA 注释模板
类.接口.等文件注释: /** * @Description: * @author: tangsw * @date: ${DATE} ${TIME} * */ 方法上注释: /** * @Descri ...
- python 连接 redis cluster 集群
一. redis集群模式有多种, cluster模式只是其中的一种实现方式, 其原理请自行谷歌或者百度, 这里只举例如何使用Python操作 redis cluster 集群 二. python 连接 ...
- Ofbiz项目学习——阶段性小结——插入数据
一.通用插入操作 /** * * 编写一个服务createUomOneDemo, * 该服务的作用是在表Uom中增加一条记录,其中: * 字段uomId的值为“BaseLineProduct”. * ...
- oracle数据库(五)
PL/SQL基础 PL/SQL语言是对oracle数据库语言的扩展,是一种高性能的基于处理事务的语言,能运行在任何oracle环境中,支持所有数据处理命令,支持所有SQL数据类型和函数,支持所有ora ...
- 公司框架-关于verifyInputgbg()方法的使用注意事项
verifyInputgbg这个方法的主要作用是:一次校验页面上的所有非空的比录项. 今天在使用这个方法的时候,遇到了这样一个问题,自己在页面上明明都录入有值,但是在还是报页面的录入信息不完整.阻断. ...
- linux 查看硬盘使用情况
在windows系统中,我们可以很容易的查看磁盘的使用情况,在linux系统中,我们可以使用命令来查看磁盘使用情况. 1.df命令 作用:用来查看硬盘的挂载点,以及对应的硬盘容量信息.包括硬盘的总大小 ...
- 使用overnightjs typescript 注解开发expressjs 应用
overnightjs 提供了基于注解的expressjs应用开发,包含了比较全的express 开发支持,使用简单,以下是一个简单的试用 项目准备 项目使用pkg 进行了打包处理 初始化 yarn ...