导出excel文件,cvs格式结尾

excel批量转换为CSV格式 代码中的 fPath = “C:\Users\杜漪漪\Desktop\excle” -定义为需要转换成CSV的Excel源文件。sPath = “C:\Users\杜漪漪\Desktop\转csv”-定义为转换后的CSV文件保存位置。这两个位置需要自己按实际修改。特别注意:路径需要以\结尾。 阅读详情


package com.suning.gcpm.admin.util;


import com.suning.framework.lang2.SnfLogger;
import com.suning.framework.lang2.SnfLoggerFactory;
import jxl.CellView;
import jxl.Workbook;
import jxl.write.*;


import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;




public class CsvWriter {


    /** CSV文件列分隔符 */
    private static final String CSV_COLUMN_SEPARATOR = ",";


    /** CSV文件列分隔符 */
    private static final String CSV_RN = "\r\n";


    protected static SnfLogger logger = SnfLoggerFactory.getLogger(CsvWriter.class);


    private CsvWriter() {


    }


    /**
     * 
     * 将检索数据输出的对应的csv列中
     * */
    public static String formatCsvData(List<Map<String, Object>> data, String displayColNames, String matchColNames) {


        StringBuilder buf = new StringBuilder();


        String[] displayColNamesArr = null;
        String[] matchColNamesMapArr = null;


        displayColNamesArr = displayColNames.split(",");
        matchColNamesMapArr = matchColNames.split(",");


        // 输出列头
        for (int i = 0; i < displayColNamesArr.length; i++) {
            buf.append(displayColNamesArr[i]).append(CSV_COLUMN_SEPARATOR);
        }
        buf.append(CSV_RN);


        if (null != data) {
            // 输出数据
            for (int i = 0; i < data.size(); i++) {


                for (int j = 0; j < matchColNamesMapArr.length; j++) {
                    buf.append(data.get(i).get(matchColNamesMapArr[j])).append(CSV_COLUMN_SEPARATOR);
                }
                buf.append(CSV_RN);
            }
        }
        return buf.toString();
    }


    public static String getImportErrorInfo(List<Map<String, Object>> failList, int size) {


        // 存放导入csv的返回信息
        StringBuilder buf = new StringBuilder();


        buf.append("成功" + size + "条," + "失败" + failList.size() + "条").append(CSV_RN);
        for (Map<String, Object> errorInfo : failList) {
            // 行号记录
            buf.append("第" + errorInfo.get("errorRow") + "行").append(CSV_COLUMN_SEPARATOR);
            // 如果检索到errorRow的值为"false",说明csv文件记录大于5000,清空StringBuffer,更改提示信息
            if ("false".equals(errorInfo.get("errorRow"))) {
                buf.setLength(0);
                buf.append(errorInfo.get("errorMsg")).append(CSV_RN);
                break;
            }


            // 对应行错误信息
            buf.append(errorInfo.get("errorMsg")).append(CSV_RN);
        }


        return buf.toString();
    }


    public static void exportCsv(String fileName, String content, HttpServletResponse response) throws IOException {


        String fn = fileName;
        // 读取字符编码
        String csvEncoding = "UTF-8";
        // 设置响应
        response.setCharacterEncoding(csvEncoding);
        response.setContentType("text/csv; charset=" + csvEncoding);
        response.setHeader("Pragma", "public");
        response.setHeader("Cache-Control", "max-age=30");
        response.setHeader("Content-Disposition", "attachment; filename=" + new String(fn.getBytes(), csvEncoding));


        // 写出响应
        OutputStream os = response.getOutputStream();
        os.write(content.getBytes("GBK"));
        os.flush();
        os.close();
    }


    //excel导出后台管理页面的方法
    public static boolean exportCsv(String fileName, List<Map<String, Object>> results, List<String> csvHeaders,
            HttpServletResponse response) throws IOException {


        String fn = fileName;
        // 读取字符编码
        String csvEncoding = "UTF-8";
        // 设置响应
        response.reset();
        response.setCharacterEncoding(csvEncoding);
        response.setContentType("text/csv; charset=" + csvEncoding);
        response.setHeader("Pragma", "public");
        response.setHeader("Cache-Control", "max-age=30");
        response.setHeader("Content-Disposition", "attachment; filename=" + new String(fn.getBytes(), csvEncoding));


        // 写出响应
        OutputStream os = response.getOutputStream();
        WritableWorkbook wwb = null;
        WritableSheet ws = null;
        try {
            wwb = Workbook.createWorkbook(os);
            ws = wwb.createSheet("sheet1", 0);
            // 创建表头
            // WritableFont wfc = new
            // WritableFont(WritableFont.ARIAL,10,WritableFont.NO_BOLD,false,UnderlineStyle.NO_UNDERLINE);
            WritableCellFormat wcfFC = new WritableCellFormat(NumberFormats.TEXT);
            CellView cv = new CellView();
            cv.setAutosize(true);
            Label headLabel = null;
            for (int i = 0; i < csvHeaders.size(); i++) {
                ws.setColumnView(0, cv); // 自动列宽
                headLabel = new Label(i, 0, (String) csvHeaders.get(i), wcfFC);
                ws.addCell(headLabel);
            }
            Label contentLabel = null;
            Set<Map.Entry<String, Object>> s = null;
            Iterator<Map.Entry<String, Object>> iter = null;
            int j = 0;
            for (int i = 1; i <= results.size(); i++) {
                s = results.get(i - 1).entrySet();
                iter = s.iterator();
                j = 0;
                while (iter.hasNext()) {
                    Map.Entry<String, Object> o = (Map.Entry<String, Object>) iter.next();
                    String str = "";
                       if(o.getValue()==null){
                           str = "";
                       }else if(o instanceof Timestamp){
                        str = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format((Timestamp) o.getValue());
                    } else {
                        str = String.valueOf(o.getValue());
                    }
                    contentLabel = new Label(j, i, str);
                    ws.addCell(contentLabel);
                    j++;
                }
            }
        } catch (Exception e) {
            logger.logException(e);
            return false;
        } finally {
            try {
                if (wwb != null) {
                    wwb.write();
                    wwb.close();
                }
                if (os != null) {
           os.flush();  //liting
                    os.close();
                }
            } catch (WriteException e) {
                logger.logException(e);
            } catch (IOException e) {
                logger.logException(e);
            }
        }
        return true;
    }


}
C#导出Excel cvs数据 using System;using System.Collections.Generic;using System.Text;using System.Data;using System.Windows.Forms;using System.IO; namespace TopAPI{    class ExcelCreate        {        public void C 阅读详情

相关推荐

PHP百万级数据导出方案(多csv文件压缩)

概述:最近公司项目要求把数据除了页面输出也希望有导出功能,虽然之前也做过几个导出功能,但这次数据量相对比较大,差不多一天数据就20W条,要求导7天或者30天,那么数据量就轻松破百万了甚至破千万,因此开发的过程中发现了一些大数据导出的坑,在此跟大家分享一下,互相学习。准备:1、PHP设置坑: set_time_limit – 设置脚本最大执行时间: 此配置一般PHP默认是30秒,如果你是数据小的,可

心有猛虎,细嗅蔷薇! 3万+

CSV 与 Excel(.xls)-有什么区别?

在上面的示例中,我们成功地创建了一个包含大量数据的Excel电子表格,并将其另存为CSV格式。我们还比较了Excel和CSV文件的大小,发现CSV文件比Excel文件小。Excel是一款功能强大的电子表格软件,它提供了多种数据分析和处理工具,例如图表、公式和宏。CSV是一种通用的文件格式,它可以被几乎所有的软件和编程语言所读取和处理。Excel是一种专有的文件格式,它只能被Excel和其他少数软件所读取和处理。在上面的示例中,我们成功地创建了一个Excel电子表格,并将其另存为CSV格式。

RichardYang2020的博客 1万+

cvs数据格式 gps_运动手表GPS轨迹文件导出方法

运动手表GPS轨迹文件导出方法什么是GPS轨迹文件?记录运动轨迹是带GPS运动设备最基本的功能,记录轨迹后才能计算配速(速度)、距离,间接数据还有步幅、最大摄氧量等数据。带GPS功能运动设备比较常见有:手机、运动手表、骑行码表等,本文主介绍运动手表类。轨迹文件就是由运动设备记录运动数据,如经纬度、时间、心率、海拔、温度等信息的文件,常用文件格式有GPX,FIT,TCX,CSV,KML等。运动轨迹是...

weixin_39864591的博客 1939

文件格式转换:EXCEL和CSV文件格式互相转换

是转换后的文件名,比如说转换后为output.csv,那么你的。注意它是将每个Sheet都单独转换出来,成为独立的csv文件。先激活自己创建的环境,不会的可以参考我这篇博文。激活环境以后,使用下述代码进行安装。是你要转换的文件,你自己填写,不能已经存在,否则代码会报错。是需要转换的csv文件,

qq_63913621的博客 6703

将Excel数据整理为特定格式:CVS和数据库实战指南

CSV(Comma-Separated Values,逗号分隔值)文件是一种常用的文本格式,用于存储表格数据,包括数字和文本。它使用逗号来分隔不同的数据项,每行代表数据集中的一个记录。由于CSV文件的简单性和兼容性,它成为了不同应用软件间交换数据的通用格式。当数据集过大或复杂到无法手动处理时,专业的数据处理工具就能大显身手。目前市面上有许多优秀的CSV数据处理工具,以下是一些流行的选择:OpenRefine(以前称为Google Refine)

weixin_42356162的博客 810

js打开cvs文件

使用js打开cvs文件,读数据,html5。

如何解决导出csv文件数字自动变为科学计数法(数值中带E)

解决:导出csv文件数字自动变为科学计数法(数值中带E),真特喵的好用

weixin_46049575的博客 1万+

java 导出csv格式文件(支持实体类输入)

java 导出csv格式文件(支持实体类输入)

csv文件格式的介绍

CSV文件格式,全称为Comma-Separated Values(逗号分隔值),是一种简单的文件格式,用于存储表格数据,如电子表格或数据库。CSV文件由纯文本组成,其中的数据通常是以逗号分隔的值。这种格式的一个特点是它的简单性,使得它可以通过各种程序轻松读取和写入,包括文本编辑器和表格处理软件。

ededabo的博客 1468

导出CVS(excel) ts(js)代码案例

导出cvs (excel) 的ts 代码 如果需要用作js代码 需要修改里面变量的修饰词

CSV转Excel(xlsx) 小工具

因CSV文件过大用Excel打开过慢时,将CSV转换成xlsx(Excel2007格式)文件后,打开速度会相对快很多 本软件能够将CSV文件快速转换成Excel文件 注:运行环境低于framework3.5时,无法运行,请慎重下载

前端将cvs格式数据导出为Excel表

选择哪种方法取决于你的具体需求,比如是否需要在客户端处理大量数据,是否需要支持旧版浏览器,以及是否需要自定义Excel文件的样式等。

qq505751223的博客 1933

php 导出cvs,php 导出excel CVS格式

php excel导出 CVS格式 乐杨俊$param=array();//模拟导出数据$param [1] = array ('po' => '651651616','pick_mode' => '1','auto_add_goods' => '0','type' => 'jit','schedule_time' => '20013-00-00','num...

weixin_31459571的博客 188

深信服防火墙路由模式开局部署-手把手教学(小白篇)

手把手教学,拿到深信服的防火墙路由模式该如何开局?

m0_64423407的博客 2万+

通信原理与MATLAB(八):2PSK的调制解调

通信原理和MATLAB

菜yuan~的博客 3万+

JQuery使用datatables实现表格导出excel cvs

官网:https://datatables.net/ 拓展配置地址:https://datatables.net/download/ 在官网可以自己diy样式,这个自由发挥 编程学习英文很重要,一定要逼着自己学好英文,官网上例子写的很清楚,写一写自己做的一个demo 1.https://start.spring.io/springboot简单生成一个demo工程,maven+tom...

jiahua_zhang的博客 3254

从仿真到打样:PMOS栅极泄放电路设计全流程复盘与三个踩坑点总结

本文详细复盘了PMOS栅极泄放电路从仿真到打样的全流程设计,重点总结了三个关键踩坑点:三极管BE结过压击穿、静态功耗超标和栅极振荡现象。通过优化缓启动电路、改进保护设计和布局调整,最终实现18ms开通时间、190μs关断时间和8μA静态功耗的工业级性能指标,为类似电源开关设计提供实用参考。

weixin_28693683的博客 371

php 导出excel CVS格式

php 导出excel CVS格式

乐杨俊浅谈LAMP 1945

uniapp [微信小程序] - 详解微信小程序端接入mqtt全流程及示例源码教程,uniApp微信小程序端如何接入MQTT插件并实现连接/断开+发布订阅+消息队列+离线重连等各种示例代码(开箱即用)

uniapp微信小程序接入MQTT,uniapp中使用mqtt,uniapp 微信小程序端接入mqtt示例代码教程,适用于微信小程序的MQTT插件,uniapp开发微信小程序连接mqtt,uniApp微信小程序接入MQTT协议,uniapp vue3微信小程序使用MQTT的小例子接入流程,使用uniapp开发小程序接入mqtt,如何在uniapp项目中使用mqtt,uniapp mqtt的使用示例,mqtt连接报错,如何在项目里集成mqtt,Mqtt协议,主动连接mqtt,订阅消息,实现发布,订阅和接收消息

🏆 前端领域优质创作者 2882

真格量化-bs套利

#!/usr/bin/env python # coding:utf-8 from PoboAPI import * import datetime import time import numpy as np from copy import * #开始时间,用于初始化一些参数 def OnStart(context) : context.myacc = None #登录交易账号 if context.accounts["回测期权"].Login() : co.

qq_26742269的博客 1321

gin导出excel文件与cvs

go可以通过excelize包实现对excel的操作。

小熙的博客 972

一文读懂 CST 时/频域求解器

本文系统介绍了CST Studio Suite中的关键网格技术——六面体网格、四面体网格以及TLM求解器专用的八叉树非均匀网格技术。重点阐述了六面体网格的三项核心技术:理想边界拟合(PBA)技术可精确处理曲面边界,薄片技术(TST)能高效模拟薄层结构,自适应八叉树网格实现计算资源最优分配。同时详细对比了六面体网格与四面体网格的特点及适用场景,前者适用于系统级EMC/EMI分析等时域问题,后者擅长处理复杂曲面和异质材料的频域问题。

一只豌豆象的博客 464

Java导出CSV格式文件

导出csv格式文件的本质是导出以逗号为分隔的文本数据 import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import...

yyguy的博客 1232

假人有限元模型

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

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

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

上一篇: 读写分离
下一篇: 单元测试的基类
韩慕灵
博客等级 码龄15年 8粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值