导出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,对于格 ...
随机推荐
- jenkins邮件配置以及邮件添加附件详解
1.在系统管理-系统设置 中找到邮件配置模块 填写情况如下图 第一步,填写系统管理员邮箱 第二步,填写邮箱配置 第三步,然后在项目中添加邮箱配置 项目中邮件设置中关于附件添加 因为我的项目目录中分3 ...
- C#中集合ArrayList与Hashtable的使用
C#中集合ArrayList与Hashtable的使用 http://blog.csdn.net/linukey/article/details/42506819 ArrayList: 一. 注意事项 ...
- Linux安全加固(二)禁止普通用户su到root/设置SSH终端接入白名单/修改history条数
一.禁止普通用户su到root管理员.设置可以su到root的白名单 1.首先看一下正常情况 2.可以看到普通用户使用su root命令,输入密码即可登录到root用户 3.下面开始配置禁止所有普通用 ...
- Scrapy爬虫案例 | 数据存储至MySQL
首先,MySQL创建好数据库和表 然后编写各个模块 item.py import scrapy class JianliItem(scrapy.Item): name = scrapy.Field() ...
- linux修改/etc/profile权限
修改/etc/profile时提示为只读文件,不允许修改, 敲#chmod 777 /etc/profile后仍不允许修改 解决办法: 在root权限下敲 #:mount -o remount,rw ...
- lastal
http://last.cbrc.jp/doc/lastal.html This program finds local alignments between query sequences, and ...
- Ubuntu 16.04 一系列软件安装命令,包括QQ、搜狗、Chrome、vlc、网易云音乐安装方法
1 简介 Ubuntu 16.04安装完后,还需要做一些配置才能愉快的使用,包括添加软件源.安装搜狗输入法.Chrome浏览器.网易云音乐.配置快捷键.安装git等等,下面就跟着我来配置吧,just ...
- 思科、华为、H3C常用命令对比大全
思科.华为.H3C这些网络设备的命令还是挺多的,不过我们一般用的路由交换机设备都是最简单的了,先学基本命令,再学其他功能命令.路由命令是最基本的命令了. 思科.华为.H3C常用命令对比大全 CI ...
- hotspot的内存
java memory主要分heap memory 和 non-heap memory,其计算公式如下: Max memory = [-Xmx] + [-XX:MaxPermSize] + numbe ...
- ImportError: DLL load failed while importing win32api: 找不到指定的模块。
这个是用pip install pywin32安装报的一个错误 据说直接使用pip install pypiwin32安装就不会有报错 但是遇到错误还是要尝试解决一下的 pip install pyw ...