当前位置: 首页 > news >正文

做网站公司南京/国外网站制作

做网站公司南京,国外网站制作,哎吆嗨网站建设,石家庄大型网站设计公司1. CSV 简介 CSV全称是:Comma Separated Values (逗号分隔值)或者 Character Separated Values(字符分隔值)。其文件以纯文本形式存储表格数据(数字和文本)。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条…

1. CSV 简介

CSV全称是:Comma Separated Values (逗号分隔值)或者 Character Separated Values(字符分隔值)。其文件以纯文本形式存储表格数据(数字和文本)。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。每一行记录位于一个单独的行上,用回车换行符CRLF(也就是\r\n)分割。

  • 对于excel来说默认使用 ,进行分割数据。

  • 每一行记录最后一个字段后不能跟逗号

  • 每一行一条记录

  • 列为空需要指定 “”

  • 用回车换行符CRLF(\r\n)分割每条记录

  • 纯文本,使用某个字符集,比如ASCII、Unicode、EBCDIC或GB2312

2. 实现 CSV 文件导出

采用 Apache 开源的 commons-csv 包,详细内容参考 官网

2.1 使用

2.1.1 引入依赖
<dependency>  <groupId>org.apache.commons</groupId>  <artifactId>commons-csv</artifactId>  <version>1.7</version>  
</dependency>
2.1.2 API
  1. print(Object value); // 写入一个单元格数据
  1. printRecord(Iterable<?> values); // 写入一行数据
  1. printRecords(Iterable<?> values);// 写入多行数据

其他重载方法⬇️

2.2 封装一个导出方法

/**  * 导出 csv 文件  * [@param] out 输出流  * [@param] iter 数据 我这里传 List<List<Object>>   类型* [@param] charset 字符集编码  * [@param] header 表头  */  
public void exportCSVFile(OutputStream out, Iterable<?> iter, String charset, String... header) {  try {  // 写入bom, 防止中文乱码  byte[] bytes = {(byte) 0xEF, (byte) 0xBB, (byte) 0xBF};  out.write(bytes);  OutputStreamWriter osw = new OutputStreamWriter(out, charset);  CSVFormat csvFormat = CSVFormat.EXCEL.withHeader(header);  CSVPrinter csvPrinter = new CSVPrinter(osw, csvFormat);  csvPrinter.printRecords(iter);  csvPrinter.flush();  csvPrinter.close();  } catch (IOException e) {  e.printStackTrace();  }  
}

2.3 使用示例

List<List<Object>> lists = new ArrayList<>();  
​  
List<Object> list1 = new ArrayList<>();  
list1.add("张三");  
list1.add(18);  
list1.add("男");  
lists.add(list1);  
​  
List<Object> list2 = new ArrayList<>();  
list2.add("李四");  
list2.add(20);  
list2.add("女");  
lists.add(list2);  String[] header = {"姓名", "年龄", "性别"};  // 省略 out  exportCSVFile(out, lists, "UTF-8", header);
  • Excel 打开

  • 文本编辑器打开

    张三,18,男

    李四,20,女

2.4 可能遇到的问题

  • 使用 Excel 打开出现中文乱码

    上面的示例代码采用的是写入 bom ,编码为 UTF-8 的方式解决的,也有其他方案是使用编码为 GBK。

  • 用 Excel 打开后,日期格式会变成 ### 或者 2019/01/01 以及较大数字会变成科学技术法

    写数据时加上制表符,一个制表符不够,就 2 个
    不要调用 printRecords(); 方法,而是通过遍历数据调用 csvPrinter.print("\t"+ 数据 +"\t");

    public void exportCSVFile(OutputStream out, Iterable<?> iter, String charset,String... header) {  try {  // 写入bom, 防止中文乱码  byte[] bytes = {(byte) 0xEF, (byte) 0xBB, (byte) 0xBF};  out.write(bytes);  OutputStreamWriter osw = new OutputStreamWriter(out, charset);  CSVFormat csvFormat = CSVFormat.EXCEL.withHeader(header);  CSVPrinter csvPrinter = new CSVPrinter(osw, csvFormat);  Iterator<?> iterator = iter.iterator();  while (iterator.hasNext()) {  Collection list = (Collection)iterator.next();  // 开始写一行数据  list.forEach(c->{  try {  csvPrinter.print("\t" +c.toString() +"\t" );  } catch (IOException e) {  e.printStackTrace();  }  });  // 写完一行,需要换行  csvPrinter.println();  }  csvPrinter.flush();  csvPrinter.close();  } catch (IOException e) {  e.printStackTrace();  }  
    }
    

注意: 添加了制表符之后,用文本编辑器打开后,格式就会变得很难看, 如下图所示:

  • 写入的数据包含逗号,双引号等特殊字符时,导出的 csv 文件用文本编辑器打开,数据会用双引号包裹起来, 如下所示:

  • 通过 Excel 修改 CSV 文件会出现兼容性问题

http://www.jmfq.cn/news/5031415.html

相关文章:

  • 奉贤做网站制作/中国seo排行榜
  • 安装不了wordpress/宁波网站优化公司推荐
  • 织梦图片网站/网站友链查询接口
  • 伍佰亿网站怎样/国内新闻最近新闻今天
  • 中国建设银行网站怎么解绑设备/2023国内外重大新闻事件10条
  • 旅游网站开发实训报告/目前最流行的拓客方法
  • 做问卷的网站有那些/官方网站百度一下
  • 免费做图素材网站有哪些/北京网络网站推广
  • 江西网站开发科技公司/营销策略有哪些方法
  • wordpress首页添加logo/优化服务公司
  • 个人网站建立教程/seo排名赚app是真的吗
  • 建网站都要什么费用/营销模式有哪些
  • 挣钱最快的游戏/百度关键词优化师
  • 做网站工作怀孕/广告公司是做什么的
  • 网站建设网站建设哪家好/中视频自媒体账号注册下载
  • 国外服务器网站/广告投放平台系统
  • 企业网站报价表/培训心得简短200字
  • 如何自学建网站/什么是搜索引擎优化?
  • 佛山行业网站设计/百度推广课程
  • 泰安房产成交信息网/临沂seo顾问
  • 响应式做的比较好的网站/google推广教程
  • 做发型的网站/安卓系统最好优化软件
  • 建设厅网站沙场限期通知书/百度95099怎么转人工
  • 信誉好的福州网站建设/谷歌竞价推广教程
  • 北京微信网站建设公司/抖音搜索引擎推广
  • 网页设计作品html+css作品源码/seo上首页排名
  • 网站建设毕业设计怎么做/爱站网怎么用
  • 安徽省建设工程质量协会网站/能去百度上班意味着什么
  • 旅游网站设计报告/海外营销推广服务
  • 济源建网站/亚马逊关键词优化怎么做