Excel导出是非常常见的需求,而大多数时候只需要导出CSV格式文件即可。Csv文件非常简单以及快速,除了日常导出报表,还可以导出大量数据用于跨系统数据交换,曾经多次遇到一次性导出数百万行数据。NewLife.Core 内封装了CsvFile类,用于Csv格式文件读写,同时支持输出到Http响应流。魔方的导出功能就是由CsvFile类提供支持。

Nuget包:NewLife.Core

源码地址:https://github.com/NewLifeX/X/blob/master/NewLife.Core/IO/CsvFile.cs

写入文件

Csv文件第一行一般是头部字段名,也有部分场合不需要头部字段名。

CsvFile 提供了 WriteLine/WriteAll 作为写入接口,可以WriteLine写入头部或一行数据,也可以WriteAll写入一批数据。

示例如下:

var file = "data/test.csv";var list = new List<Object[]>
{new Object[] { 1234, "Stone", true, DateTime.Now },new Object[] { 5678, "NewLife", false, DateTime.Today }
};{using var csv = new CsvFile(file, true);csv.Separator = ',';csv.Encoding = Encoding.UTF8;csv.WriteLine(new[] { "Code", "Name", "Enable", "CreateTime" });csv.WriteAll(list);
}var lines = File.ReadAllLines(file.GetFullPath());
Assert.Equal(3, lines.Length);
Assert.Equal("Code,Name,Enable,CreateTime", lines[0]);
Assert.Equal($"1234,Stone,1,{((DateTime)list[0][3]).ToFullString()}", lines[1]);
Assert.Equal($"5678,NewLife,0,{((DateTime)list[1][3]).ToFullString()}", lines[2]);

读取文件

Csv读取时,也要区分第一行是否头部字段名。

CsvFile统一提供了 ReadLine/ReadAll 来读取头部或者数据。

示例如下:

using var csv = new CsvFile(file);
var headers = csv.ReadLine();
var all = csv.ReadAll();Assert.Equal(4, headers.Length);
Assert.Equal("Code", headers[0]);
Assert.Equal("Name", headers[1]);Assert.Equal(2, all.Length);

http://www.taodudu.cc/news/show-909613.html

相关文章:

  • Csv数据库CsvDb
  • 一起学习设计模式--02.简单工厂模式
  • 聊一聊Load Average
  • Newbe.Claptrap 0.9.4 发布,全新构建
  • 开始CSRebot
  • 70%以上程序员,不懂数据结构和算法!
  • Dapr微服务应用开发系列4:状态管理构件块
  • .NET 云原生架构师训练营(模块二 基础巩固 安全)--学习笔记
  • IdentityServer4之持久化很顺手的事
  • dotnet core TargetFramework 解析顺序探索
  • 93.7%的程序员!竟然都不知道Redis为什么默认16个数据库?
  • EntityFramework Core查询数据基本本质
  • 万级 K8S 集群背后,etcd 如何保持稳定性?
  • 穿背心的老院士,86岁,重病,还在敲代码,单手!
  • C#使用NPOI进行word的读写
  • .NET 6 Preview 1发布!
  • 机器信息MachineInfo
  • 使用 Tye 辅助开发 k8s 应用竟如此简单(五)
  • 雪花算法Snowflake
  • Delphi 26 岁
  • 边缘计算k8s集群之SuperEdge
  • 通俗系列之同步、异步、阻塞和非阻塞
  • C# 打印PDF文档的10种方法
  • .NET gRPC核心功能初体验
  • 如何在 ASP.Net Core 中使用 Configuration Provider
  • C# 使用 Index 和 Range 简化集合操作
  • 微软开源AI诊断工具Error Analysis
  • 使用 Tye 辅助开发 k8s 应用竟如此简单(六)
  • BeetleX.WebFamily针对Web SPA应用的改进
  • 这是“我”的故事 —— 董彬

Csv解析CsvFile相关推荐

  1. 字符串 CSV解析 表格 逗号分隔值 通讯录 电话簿 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  2. .NET Core中的CSV解析库

    感谢 本篇首先特别感谢从此启程兄的<.NetCore外国一些高质量博客分享>, 发现很多国外的.NET Core技术博客资源, 我会不定期从中选择一些有意思的文章翻译总结一下. .NET ...

  3. android csv显示乱码问题,Android CSV解析器问题

    5 个答案: 答案 0 :(得分:2) 为什么要编写自己的CSV解析,当你可以使用已经编写过的库来执行此操作时?也许OpenCSV可以帮助您实现CSV解析目标. 答案 1 :(得分:2) 您想要这样做 ...

  4. csv解析java_Java CSV解析器

    csv解析java Welcome to the Java CSV Parser tutorial. CSV files are one of the most widely used format ...

  5. csv文件示例_自己动手? -一个简单的CSV解析器示例

    csv文件示例 Download source code - 2.7 MB 下载源代码2.7 MB 目录 (Table of Contents) Introduction 介绍 The Dataset ...

  6. java csv快速解析_爸爸解析:闪电般的快速CSV解析体验

    java csv快速解析 总览 (Overview) With a plethora of options to parse CSV files/data and adding to it the i ...

  7. Java 解析CSV文件 CSV解析

    需求背景 从一个数据库导出一个表的数据,导出文件为CSV文件:需要将数据导入到本地开发环境的数据库里面.CSV文件已经有了,需要解析读CSV文件,并导入进数据库.本文主要研究第一部分,自己写代码解析C ...

  8. java 解析 csv_在Java中将数据从CSV解析到数组

    我正在尝试将CS​​V文件导入到可以在 Java程序中使用的数组中. CSV文件已成功导入自身,输出显示在终端上,但它会引发错误: Exception in thread "main&quo ...

  9. php将值作为数组,php – 如何将CSV解析为数组,并将第一个值作为键?

    所以我有一个看起来像这样的CSV文件: 12345, Here is some text 20394, Here is some more text 如何将其插入到看起来像这样的数组中 $text = ...

最新文章

  1. 日韩决裂,半导体谁最受伤?
  2. AcWing 199. 余数之和 (除法分块)打卡
  3. DataScience:数据可视化的简介(意义+六大优势)、使用工具之详细攻略
  4. 在C/C++中嵌入Python
  5. 不等双十一,ChemDraw降价活动已经打开!
  6. 指针的动态初始化malloc与销毁free
  7. 金蝶国际公布2020年全年业绩,云业务收入增长45.6%
  8. Python中raise用法
  9. android button layoutparams,使用LayoutParams设置布局
  10. 吴恩达ex3_吴恩达Machine Learning Ex3 python实现
  11. 获取context path或者basePath
  12. ubuntu系统颜色更改
  13. charset参数 sqluldr2_SQLULDR2
  14. matlab数值分析代码,数值分析matlab代码
  15. 计算机主板供电,台式机计算机主板供电电路.doc
  16. Vue:v-charts图表设置指标别名
  17. 关于千牛移动端纯H5插件和QAP应用中H5页面的概念
  18. 计算机网络原理课后作业答案,自考04741《计算机网络原理》课后习题答案
  19. 1060-勇者斗恶龙(BFS)
  20. 4个小例子告诉你:如何成为一名数据极客

热门文章

  1. kali怎么成为管理员_网站死链是什么、是怎么引起的以及死链对SEO优化的影响?...
  2. [Unity优化]批处理03:静态批处理
  3. [转]table中设置tr行间距
  4. [BZOJ4182]Shopping
  5. geotrellis使用(二十九)迁移geotrellis至1.1.1版
  6. webform数据导出
  7. 每日一小练——按字典顺序列出全部子集
  8. 3150 Pibonacci数 - Wikioi
  9. ZOJ 3228(AC自动机+修改的匹配)
  10. (转)matlab各类数学公式