一个完整使用C#编写的CSV读写类_c# csv行列固定_郝伟博士的博客-程序员宅基地

技术标签: C#语言详解  CSV  读写类  开发方法与工具  

源文件下载地址:https://gitee.com/hwaust/WindGoes6/blob/master/Windgoes6/Data/CSV.cs

简介

网上有很多CSV的读写类,这些类要么设计不合理,要么功能简单,要么内容不完整。为了方便在C#在对CSV中的操作,笔者进行了重新编写。此CSV类具有以下特点:

  • 使用简单
    只需要几行代码即可定义、访问和进行相应的读写操作。
  • 功能完善
    包括CSV操作的主要功能。
  • 支持不同编码
    可以自定义,并支持所有常见编码格式。
  • 支持特殊字符
    如引号("),逗号(,), 换行符号(\r\n)。
  • 只有一个源文件
    源代码只有1个,方便管理。

使用方法

/***************** 从文件初始化一个CSV文件 *****************/
// 初始化,可修改编码,如:new CSV(input, Encoding.Default);  
// 加载后的数据在 csv.Data 中,其数据类型为 List<List<string>>
CSV csv = new CSV("C:\\input\\data.csv");  

/***************** 从加载好的 csv.Data 中读取数据 *****************/
string v0_0 = csv.Data[0,0]
// 为了简化操作,可以用以下方式读取。注意:这两种方法都会对范围验证,如果数据不存在,则返回 null
string v3_5 = csv.GetData(3,5);    // 将单元格(3,5)的内容为赋给 v3_5
string c0_1 = csv[0,1];            // 将单元格(0,1)的内容为赋给 c3_5    

/***************** 从加载好的 csv.Data 中读取数据 *****************/
csv.SetData(2,6,"tom");         // 设置单元格(2,6)的内容为 "tom"
csv[1, 5] = "jack";             // 设置单元格(1,5)的内容为 "jack"

/***************** 添加一行数据 *****************/
// 向csv.Data追尾追加一行数据,长度为 ColumnCount,每个元素均为 ""。
csv.AddRow();                  
// 向csv.Data追加一行数据,如果 csv.ColumnCount 长度大于2,则不足部分用""补充。   
csv.AddRow(new String[]{
    "a", "b"}); 
// 向csv.Data的第5行追加一行数据,如果 csv.ColumnCount 长度大于2,则不足部分用""补充。  
// 如果行号小于0,则在首行添加;如果大于最大长度则在末尾添加。 
csv.AddRow(new String[]{
    "a", "b"}, 5); 

/***************** 删除列数据 *****************/
// 删除第11列数据,如果超出列的范围,则不做任何操作。
csv.RemoveColumn(10) 
// 删除第1,3,8列数据。当有重复的列时,只删除一次。范围超出的不做操作。
csv.RemoveColumns(1, 3, 8, 3)

/***************** 保存数据 *****************/
csv.Save("c:\\output\\data1.csv");
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43145361/article/details/91827356

智能推荐

【HFSS】带状线设置lumped port_带状线仿真端口设置_乾巽的博客-程序员宅基地

目前主流都是采用wave port,但是wave port所占体积太大,有些地方还是需要用到lumped port的。如下图所示,现在要做一个功分器,但是位置不够放下wave port。在网上寻找设置方法,无果,遂查 HFSS help 文档。它是这样定义的:意思是:用一块PEC将两块地连接,lumped port一端接signal,另一端接PEC。如下图所示:大致结果如下(还没调好-_-!)..._带状线仿真端口设置

RoboSense(速腾)16线激光雷达在windows及Ubuntu18+ROS melodic下的实时数据展示_ubuntu18.04怎么打开rsview_%zoe%的博客-程序员宅基地

在学习ROS的cartographer建图时,基本都是仿真去实现的。近期公司项目有采购一个RoboSense(速腾)16线激光雷达,尝试接入激光雷达,在windows及Ubuntu18+ROS melodic下展示实时数据,并成功建图,现将实践历程分享记录在此。首先分享RoboSense16激光雷达相关资料,其中包括用户手册及windows系统下的RSView工具的绿色版本压缩包。_ubuntu18.04怎么打开rsview

在stm32f103c8t6 上进行无OS移植LWIP_c8t6怎么配置lwip_我是酱油君的博客-程序员宅基地

首先,为什么要做无OS的LWIP呢?原因很简单,因为stm32f103c8t6只有20K的RAM,很难支持OS+LWIP。无OS的LWIP的一个优点是,可以提高单片机的以太网的响应速度。LWIP的介绍就不说了,网上查一大把。我的无OS移植LWIP基于ST官网的一个示例:STSW-STM32026 LwIP TCP/IP stack demonstration for STM3..._c8t6怎么配置lwip

Unity3D :关于UGUI的网格重建、动静分离_ugui网格重建_魔术师Dix的博客-程序员宅基地

前言:无论是网上的攻略还是以前的经验来说,都说UGUI需要进行动静分离。也就是说同一个界面下的UI,可活动的元素放在一个Canvas下,不可活动的元素放在另一个Canvas下。虽然两个Canvas打断了合批,但是却减少了网格的重建时间,总体上是有优化的。究其原因,是因为在同一个Canvas下的某个元素发生变化时,同一Canvas下的所有元素都会进行网格重建(ReBatch)。而静态的元素在..._ugui网格重建

微信小程序连接腾讯云物联网,mqtt协议_腾讯物联网链接小程序怎么用_Bigwayway的博客-程序员宅基地

之前在模拟器上能够正常连接,但是在小程序上,修改了三元之后,连接不上微信开发软件上连接不上解决方法连接地址加上地域,并且端口用80_腾讯物联网链接小程序怎么用

随便推点

link与@import区别_"link rel=\"import"_star@星空的博客-程序员宅基地

应用场景:<head> <!-- link是标签,引入外部样式表 --> <link rel="stylesheet" href="./a.css"> <style> /* @import 在css环境中 导入外部css */ @import url('./b.css'); .box{ width: 100px; height: 100px; _"link rel=\"import"

Delphi 通信报Asynchronous socket error 10053错误的一个解决方法_shuiyuan的博客-程序员宅基地

在使用Delphi中的TClientSocket和TServerSocket进行通信编程时,当使用TClientSocket这方的客户端使用TClientSocket.close断开连接并退出程序时,使用TServerSocket这方的服务端有时会报‘’Asynchronous socket error 10053‘这个错误,查阅了这个错误说明:Software caused connection_asynchronous socket error 10053

matlab假设网格颜色,matlab 按颜色画网格bar3 不同于surf,pcolor(儿子的papa)_阿诺斯.福尔迪哥德的博客-程序员宅基地

clear allclcclose all[x,y,z]=peaks(60);h=bar3(z,1)for i = 1:length(h)zdata = get(h(i),'ZData');set(h(i),'CData',zdata)% Add back edge color removed by interpolating shadingset(h,'EdgeColor','w')alpha(...

【微信小程序】wx.showToast一闪而过的解决办法_梦游人布拿拿的博客-程序员宅基地

一、问题在同时使用Loading和Toast时,wx.showToast()总是闪烁一下消失。二、解决办法封装一个showToast方法,放在app.js中调用代码:/**Toast简化 */ showToast: function(msg) { setTimeout(() => { wx.showToast({ title: ms...

推荐文章

热门文章

相关标签