Csv解析CsvFile
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相关推荐
- 字符串 CSV解析 表格 逗号分隔值 通讯录 电话簿 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- .NET Core中的CSV解析库
感谢 本篇首先特别感谢从此启程兄的<.NetCore外国一些高质量博客分享>, 发现很多国外的.NET Core技术博客资源, 我会不定期从中选择一些有意思的文章翻译总结一下. .NET ...
- android csv显示乱码问题,Android CSV解析器问题
5 个答案: 答案 0 :(得分:2) 为什么要编写自己的CSV解析,当你可以使用已经编写过的库来执行此操作时?也许OpenCSV可以帮助您实现CSV解析目标. 答案 1 :(得分:2) 您想要这样做 ...
- csv解析java_Java CSV解析器
csv解析java Welcome to the Java CSV Parser tutorial. CSV files are one of the most widely used format ...
- csv文件示例_自己动手? -一个简单的CSV解析器示例
csv文件示例 Download source code - 2.7 MB 下载源代码2.7 MB 目录 (Table of Contents) Introduction 介绍 The Dataset ...
- java csv快速解析_爸爸解析:闪电般的快速CSV解析体验
java csv快速解析 总览 (Overview) With a plethora of options to parse CSV files/data and adding to it the i ...
- Java 解析CSV文件 CSV解析
需求背景 从一个数据库导出一个表的数据,导出文件为CSV文件:需要将数据导入到本地开发环境的数据库里面.CSV文件已经有了,需要解析读CSV文件,并导入进数据库.本文主要研究第一部分,自己写代码解析C ...
- java 解析 csv_在Java中将数据从CSV解析到数组
我正在尝试将CSV文件导入到可以在 Java程序中使用的数组中. CSV文件已成功导入自身,输出显示在终端上,但它会引发错误: Exception in thread "main&quo ...
- php将值作为数组,php – 如何将CSV解析为数组,并将第一个值作为键?
所以我有一个看起来像这样的CSV文件: 12345, Here is some text 20394, Here is some more text 如何将其插入到看起来像这样的数组中 $text = ...
最新文章
- 日韩决裂,半导体谁最受伤?
- AcWing 199. 余数之和 (除法分块)打卡
- DataScience:数据可视化的简介(意义+六大优势)、使用工具之详细攻略
- 在C/C++中嵌入Python
- 不等双十一,ChemDraw降价活动已经打开!
- 指针的动态初始化malloc与销毁free
- 金蝶国际公布2020年全年业绩,云业务收入增长45.6%
- Python中raise用法
- android button layoutparams,使用LayoutParams设置布局
- 吴恩达ex3_吴恩达Machine Learning Ex3 python实现
- 获取context path或者basePath
- ubuntu系统颜色更改
- charset参数 sqluldr2_SQLULDR2
- matlab数值分析代码,数值分析matlab代码
- 计算机主板供电,台式机计算机主板供电电路.doc
- Vue:v-charts图表设置指标别名
- 关于千牛移动端纯H5插件和QAP应用中H5页面的概念
- 计算机网络原理课后作业答案,自考04741《计算机网络原理》课后习题答案
- 1060-勇者斗恶龙(BFS)
- 4个小例子告诉你:如何成为一名数据极客
热门文章
- kali怎么成为管理员_网站死链是什么、是怎么引起的以及死链对SEO优化的影响?...
- [Unity优化]批处理03:静态批处理
- [转]table中设置tr行间距
- [BZOJ4182]Shopping
- geotrellis使用(二十九)迁移geotrellis至1.1.1版
- webform数据导出
- 每日一小练——按字典顺序列出全部子集
- 3150 Pibonacci数 - Wikioi
- ZOJ 3228(AC自动机+修改的匹配)
- (转)matlab各类数学公式