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按照指定格式的更多相关文章

  1. C#导出Excel按照指定格式设置单元格属性值

    最近项目中一直在写XML.Table.Excel之间的转化.之前一直都是不考虑格式的导出,今天给出一个格式,让按照格式导出,还真把我这新手为难了一翻,网上给出的资料基本一样.为了一个单元格文字变色纠结 ...

  2. .net解决数据导出excel时的格式问题

    在项目中一般都需要将报表数据导出到EXCEL中,但经常出现导出长串数据(如身份证)到EXCEL中后显示为科学计数法的格式,或者报表中显示为001的数据导出到Excel后成了1的格式. 下面简单介绍一下 ...

  3. RDLC - 后台代码直接导出Excel/PDF/Word格式

    最近做报表功能,用到了.net的报表组件rdlc. 其中有个功能就是后台代码直接输出Excel/PDF/Word格式的文件,网上看了些资源,做个总结: 参考地址 我直接贴出代码: //自动导出exce ...

  4. CRM 报表导出excel时指定sheet名

    如图所示,设置PageName即可: 这样导出excel时,sheet的名就有了:

  5. asp.net导出Excel 按照预定格式,以及解决导出乱码

    protected void ToExcel() { //新建一个Gridview,原因:避免当前窗口GridView外层没有直接跟form标签,从而避免“gridview1未包含在run='serv ...

  6. Asp.net导出Excel/Csv文本格式数据

    刚刚开始做Excel相关的项目,所以遇到的问题不管大小都给记录一下 偶然的机会在添加数据的时候全改成了数字,结果输出的时候全自动变成了科学计数法,这是excel的强大功能,能自动识别数字和字符串,太聪 ...

  7. mysql数据库导出excel xml等格式文件

    http://jingyan.baidu.com/article/ac6a9a5e43a62e2b653eac83.html

  8. POI导入导出excel(附工具类)

    关于POI导出excel的功能我在前面的文章已经写过了,POI导出excel的三种方式 , 导出表格数据到excel并下载(HSSFWorkbook版) ,本篇文章主要是将导入导出功能进一步地封装,在 ...

  9. asp.net mvc4使用NPOI 数据处理之快速导出Excel文档

    一.背景 在之前做的小项目里有一需求是:要求将一活动录入的数据进行统计,并以excel表格形式导出来,并且对表格格式要求并不高. 二.问题分析 鉴于用户只要求最终将数据库中的数据导出excel,对于格 ...

随机推荐

  1. ORM概述(对象关系映射)

    ORM概述: ORM(Object-Relational Mapping)表示对象关系映射.在面向对象的软件开发中,通过ORM,就可以把对象映射到关系型数据库中.只要有一套程序能够做到加你对象与数据库 ...

  2. 20180527模拟赛T1——新田忌赛马

    [问题描述] (注:此题为d2t2-难度) 田忌又在跟大王van赛马的游戏 田忌与大王一共有2n匹马,每个马都有一个能力值x,1<=x<=2n且每匹马的x互不相同.每次田忌与大王放出一匹马 ...

  3. python基础语法5 函数定义,可变长参数

    函数 1.什么是函数 函数就是一种工具. 可以重复调用 2.为什么要用函数 1.防止代码冗(rong)余 2.代码的可读性差 3.怎么用函数 1.定义函数-->制造工具 2.调用函数--> ...

  4. WGS84与CGCS2000坐标系

    1.WGS84,WGS是世界大地测量系统World Geodetic System的缩写,84是说此坐标系是1984年建立的:   2.自上世纪60年代,美国军方相继推出WGS60.WGS66.WGS ...

  5. (13)使用python+flask实现树莓派的WEB控制

    https://blog.csdn.net/qq_34803821/article/details/86240096 如果你想在网页上点击按钮,并且让树莓派接收到响应,并做响应的处理,实现网页上与树莓 ...

  6. score indicator

    The strongest scorer applet is the strongest scorer specially designed for the players. No longer wo ...

  7. 洛谷 P3806 【模板】点分治1-树分治(点分治,容斥版) 模板题-树上距离为k的点对是否存在

    P3806 [模板]点分治1 题目背景 感谢hzwer的点分治互测. 题目描述 给定一棵有n个点的树 询问树上距离为k的点对是否存在. 输入格式 n,m 接下来n-1条边a,b,c描述a到b有一条长度 ...

  8. CSS注册页面案例

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. [linux][c/c++]代码片段01

    #include <stdio.h> #include <unistd.h> void usage() { printf("Usage:\n"); prin ...

  10. Golang 接口

    1 接口是什么 Golang中没有像Python.Java拥有类和对象的概念,其封装对象或说明对象是通过接口来实现的.比如谁能够实现什么样的功能,便能够将其抽象化封装. 接口定义了一组方法(抽象方法集 ...