导出到csv 文件(逗号分隔文件)不用poi 导出文件

2024-05-16 12:18
文章标签 导出 csv 不用 poi 逗号 分隔

本文主要是介绍导出到csv 文件(逗号分隔文件)不用poi 导出文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

csv 文件的注意事项: 以逗号分隔; 如果内容中已经存在了逗号,如果内容中已经存在了逗号;  对 其内容进行" 张,三"  这样进行两端加双引号转意思;

如果 数据原来就存在"   那么在 " 前面加上一个"  转义也就是"" 这样; 如 你"好   会转义为  你"" 好;  


        // 设置响应流编码 gbk  因为 excel 打开文件默认的编码 是gbk ; 所以需要在下面设置输出流的编码;
   //     response.setCharacterEncoding("gbk");


import sun.misc.BASE64Encoder;
import cn.itcast.estore.domain.Orderitem;

/**
 * 导出榜单
 *
 * @author seawind
 *
 */
public class ExportRankServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // 需要榜单数据 ---- 从ServletContext 中获得榜单数据
        List<Orderitem> rank = (List<Orderitem>) getServletContext()
                .getAttribute("rank");
        // 文件下载功能  1 先设置两个头信息;
        // 设置文件类型 Content-Type (day20里面有)  getServletContext().getMimeType("rank.csv")获取改文件名的contenttype;
        response.setContentType(getServletContext().getMimeType("rank.csv"));
        // 以附件形式下载 Content-Disposition --- 附件名中文
        Date date = new Date(System.currentTimeMillis());// 构造java.sql.Date 当前时间
        String fileName = "estore商城销售排行榜_" + date + ".csv";

        // 设置附件中文名
        String agent = request.getHeader("user-agent");
        if (agent.contains("MSIE")) {
            // IE --- URL编码
            fileName = URLEncoder.encode(fileName, "utf-8");
        } else if (agent.contains("Mozilla")) {
            // 火狐
            BASE64Encoder base64Encoder = new BASE64Encoder();
            fileName = "=?UTF-8?B?"
                    + new String(base64Encoder.encode(fileName
                            .getBytes("UTF-8"))) + "?=";
        }

        response.setHeader("Content-Disposition", "attachment;filename="
                + fileName);

//--------------以上为设置头信息 ; -----------------





        // 设置响应流编码 gbk  因为 excel 打开文件默认的编码 是gbk ; 所以需要在这里设置输出流的编码;
        response.setCharacterEncoding("gbk");

        // 文件下载
        PrintWriter out = response.getWriter();
        // 先写表头
        out.println("排名,商品编号,名称,单价,销售数量");
        // 遍历榜单数据   
        for (int i = 0; i < rank.size(); i++) {
            Orderitem orderitem = rank.get(i);

            // 输出csv数据时,对商品名称 ,进行特殊处理 --- 转义 ,和"          因为这里只是productname可能含有, 或者
            out.println((i + 1) + "," + orderitem.getProduct().getId() + ","
                    + convert(orderitem.getProduct().getName()) + ","
                    + orderitem.getProduct().getPrice() + ","
                    + orderitem.getBuynum());
        }

        out.flush();
    }

    // 转义 商品名称中 , 和 "
    private String convert(String name) {
        // 如果name 中存在 " 转成 ""
        name = name.replace("\"", "\"\"");                    // 一个 "  转换为 ""     \ 为转义符号
        // 如果包含,返回 name 两端 添加 ""
        return "\"" + name + "\"";
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doGet(request, response);
    }

}

这篇关于导出到csv 文件(逗号分隔文件)不用poi 导出文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/994888

相关文章

Python实现将实体类列表数据导出到Excel文件

《Python实现将实体类列表数据导出到Excel文件》在数据处理和报告生成中,将实体类的列表数据导出到Excel文件是一项常见任务,Python提供了多种库来实现这一目标,下面就来跟随小编一起学习一... 目录一、环境准备二、定义实体类三、创建实体类列表四、将实体类列表转换为DataFrame五、导出Da

Python数据处理之导入导出Excel数据方式

《Python数据处理之导入导出Excel数据方式》Python是Excel数据处理的绝佳工具,通过Pandas和Openpyxl等库可以实现数据的导入、导出和自动化处理,从基础的数据读取和清洗到复杂... 目录python导入导出Excel数据开启数据之旅:为什么Python是Excel数据处理的最佳拍档

使用Python处理CSV和Excel文件的操作方法

《使用Python处理CSV和Excel文件的操作方法》在数据分析、自动化和日常开发中,CSV和Excel文件是非常常见的数据存储格式,ython提供了强大的工具来读取、编辑和保存这两种文件,满足从基... 目录1. CSV 文件概述和处理方法1.1 CSV 文件格式的基本介绍1.2 使用 python 内

Oracle Expdp按条件导出指定表数据的方法实例

《OracleExpdp按条件导出指定表数据的方法实例》:本文主要介绍Oracle的expdp数据泵方式导出特定机构和时间范围的数据,并通过parfile文件进行条件限制和配置,文中通过代码介绍... 目录1.场景描述 2.方案分析3.实验验证 3.1 parfile文件3.2 expdp命令导出4.总结

SpringBoot使用Apache POI库读取Excel文件的操作详解

《SpringBoot使用ApachePOI库读取Excel文件的操作详解》在日常开发中,我们经常需要处理Excel文件中的数据,无论是从数据库导入数据、处理数据报表,还是批量生成数据,都可能会遇到... 目录项目背景依赖导入读取Excel模板的实现代码实现代码解析ExcelDemoInfoDTO 数据传输

java poi实现Excel多级表头导出方式(多级表头,复杂表头)

《javapoi实现Excel多级表头导出方式(多级表头,复杂表头)》文章介绍了使用javapoi库实现Excel多级表头导出的方法,通过主代码、合并单元格、设置表头单元格宽度、填充数据、web下载... 目录Java poi实现Excel多级表头导出(多级表头,复杂表头)上代码1.主代码2.合并单元格3.

MySQL使用mysqldump导出数据

mysql mysqldump只导出表结构或只导出数据的实现方法 备份数据库: #mysqldump 数据库名 >数据库备份名 #mysqldump -A -u用户名 -p密码 数据库名>数据库备份名 #mysqldump -d -A --add-drop-table -uroot -p >xxx.sql 1.导出结构不导出数据 mysqldump --opt -d 数据库名 -u

一步一步将PlantUML类图导出为自定义格式的XMI文件

一步一步将PlantUML类图导出为自定义格式的XMI文件 说明: 首次发表日期:2024-09-08PlantUML官网: https://plantuml.com/zh/PlantUML命令行文档: https://plantuml.com/zh/command-line#6a26f548831e6a8cPlantUML XMI文档: https://plantuml.com/zh/xmi

最新OpenStreetMap POI数据(附下载教程)

OSM(OpenStreetMap)POI(Point of Interest)数据是指在OpenStreetMap上标记的各种兴趣点,如餐馆、酒店、公交站、学校等地点。这些数据在地理信息系统(GIS)应用中非常有用,可以帮助进行地图绘制、路径规划以及其他地理分析任务。 这里直接放出下载地址,有需要的可以自行下载,tips:国外城市的数据源质量比国内的要高一些; OpenStreetMap P

anaconda3下的python编程练习-csv翻译器

相关理解和命令 一、环境配置1、conda命令2、pip命令3、python命令 二、开发思路三、开发步骤 一、环境配置 1、conda命令 镜像源配置 conda config --show channels //查看镜像源conda config --remove-key channels //删除添加源,恢复默认源#添加镜像源conda config --ad