【C#】读取txt、csv等二维表

article/2025/7/23 11:57:17

程序要读文件,在实战中主要还是以二维表为主,类似下图这种:


基本上除了掌握《【C#】txt的读写》(点击打开链接)的文件流的读写,还需要与《【C#】利用正则表达式判断输入是否为纯数字、容器类》(点击打开链接)灵活运用。本文将使用《【Java】一行代码读完记事本中的二维表》(点击打开链接)的思想,展示在C#如何读取这个的二维表,读入到Listview当中。

首先是场景布置,没什么好说的,这也不是本文的重点,就在Form中一个Button一个修改了部分属性的Listview。


主要是如下的双击Button1生成的点击事件,Form1.cs如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;namespace read_txtTable
{public partial class Form1 : Form{char SPLIT_SEPARATOR = ' ';//存放二维表文件的csv或者txt的分隔符public Form1(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){int line_max_count = 0;//计算这个二维表的列最多去到多少List<List<String>> T = new List<List<String>>();//用于存二维表的容器,就是一个存List的ListOpenFileDialog openFileDialog1 = new System.Windows.Forms.OpenFileDialog();//一个打开文件的对话框    openFileDialog1.Filter = "文本文件(*.txt)|*.txt";//设置允许打开的扩展名,你也可以改成csv之类的   if (openFileDialog1.ShowDialog() == DialogResult.OK)//判断是否选择了文件      {StreamReader streamReader = new StreamReader(openFileDialog1.FileName, Encoding.Default);//读取文件的流while (!streamReader.EndOfStream)//如果没读到最后{List<String> line = new List<String>(streamReader.ReadLine().Split(SPLIT_SEPARATOR));//每一行根据分隔符形成数组,同时形成ListT.Add(line);//T增加这一行if (line_max_count < line.Count)//此乃求列的最大值算法{line_max_count = line.Count;}}streamReader.Close();}//设置listview的表头  for (int i = 0; i < line_max_count; i++){listView1.Columns.Add("列" + (i + 1), listView1.Width / line_max_count - 1, HorizontalAlignment.Left);}listView1.BeginUpdate();//数据更新,UI暂时挂起,直到EndUpdate绘制控件,可以有效避免闪烁并大大提高加载速度  for (int i = 0; i < T.Count; i++){List<String> line = T[i];ListViewItem listViewItem = new ListViewItem();for (int j = 0; j < line.Count; j++){if (j == 0){listViewItem.Text = line[j];//listview的每一行的第一项  }else{listViewItem.SubItems.Add(line[j]);//其余子项}}listView1.Items.Add(listViewItem);//将这行添加到listview中  }listView1.EndUpdate();//结束数据处理,UI界面一次性绘制。  }}
}

你甚至还可以设置一个textBox让用户输入分隔符,不过这样读取二维表的算法一般是自用的。ListView的使用在《【C#】ListView的使用,对Access数据库的增删改查》( 点击打开链接)详细说过,这里不再赘述了。主要大家要记住,针对这样的二维表,基本上是设置一个存List的List。因为文件流的读取基本上一行一行地进行,所以在读取的过程中,将一行行用Split('分隔符')的方式,并通过new List()将其打成一个数组,再形成List。同时值得注意的是,C#的Split只能接受char,Java则能接受string和char。

最后上述的txt经过这个程序,运行结果如下所示:



http://chatgpt.dhexx.cn/article/qWZiyoA0.shtml

相关文章

MySQL一维表变二维表_二维表转换一维表,三种方法一网打尽!

小伙伴们&#xff0c;早上好&#xff01;新的一天又开始了&#xff0c;学习的脚步不能停。 今天向大家分享二维表格转一维表的三种方法&#xff0c;分别用到函数、数据透视表和VBA代码。三种方法各有利弊&#xff0c;表亲可以自行选择。 如下图&#xff0c;A1:E5是数据源&#…

给二维表添加时间序列索引

一&#xff0c;读取数据 import pandas as pd open_dataspd.read_csv(./data328/open328.csv,headerNone) open_datas.head()(可以看到索引为数字) 二&#xff0c;创建时间序列 import pandas as pd open_dataspd.read_csv(./data328/open328.csv,headerNone) open_datas.h…

excel二维表转化为一维表

1、什么是二维表和一维表 二维表即表中有两个维度&#xff0c;纵向维度的哪列值唯一 一维表即只有列名一个维度 2、 添加工具并转换 我们需要添加【数据透视表和数据透视图向导】功能来完成&#xff0c;如果已经设置可以忽略这步 文件--选项--自定义功能区--不在功能区的命令…

Excel如何快速将一维表转为二维表

如下图左侧是某公司销售一维表&#xff0c;现在想要将其快速转换成右侧这种二维表。 选中姓名列所有数据区域&#xff0c;然后点击下图选项&#xff08;Excel工具箱&#xff0c;具体安装方法百度即可&#xff0c;本文不作过多叙述&#xff09; 选择【随机重复】&#xff0c;然后…

【Python】Pandas DataFrame 一维表二维表的转换

目录 一、stack & unstackunstack 将一维表转换为二维表stack 将二维表转换为一维表 二、pivot & meltpivot 将一维表转换为二维表melt将二维表转换为一维表 Tips 用pandas处理数据&#xff0c;我们经常获取到的是从数据库或者excel中获取的一维表。而常常需要重排&…

Excel:一维表和二维表 互转

一、一维表转二维表 数据源&#xff1a; 一份流水账式的值班表&#xff0c;为了便于打印张贴&#xff0c;现在需要使其变成这样的样式&#xff1a; 也就是从一维表变成传说中的二维表。 1、新建查询 依次单击【数据】→【新建查询】 →【从文件】→【从工作簿】 找到存放的工作…

mysql 二维表 查询_二维报表数据表设计

报表原型: 这里随便挑了一个二维报表 二维报表设计分析: 上面的报表原型行和列都有数据项,我们可以根据地理位置的经纬度定坐标点的思想来进行设计 这里使用列行来表示 c1r1表示第一列第一行 c1r2表示第一列第二行 ..... c2r1表示第二列第一行 c2r2表示第二 报表原型: 这里随便…

MySQL一维表变二维表_一维表转化为二维表,你会吗?

原标题&#xff1a;一维表转化为二维表&#xff0c;你会吗&#xff1f; 在产品的一些销售数据处理中&#xff0c;我们经常看到这样的一维表数据: 我们在进行数据的统计分析时&#xff0c;需要用这样的一维表作为数据源&#xff0c;所以正常情况下我们会用一维表的格式进行数据的…

python一维列表变二维列表_使用Python轻松应对一维表与二维表相互转换

数据分析时,同事经常给你一份二维表,是不是分分钟有想哭的冲动,一大堆的东西在一块,怎么透视?想要做进一步分析,也是特别麻烦。今天给你一种方便的方法。 一、入门版 先来看看可能要处理的文件是什么样的? 看看,别提多闹心了。当然我们不可能一开始就处理这么复杂的样…

Python实现一维表与二维表之间的相互转化

对已有数据表进行一维和二维之间的转化&#xff1a; import pandas as pd# 读入数据&#xff1a; df pd.read_excel(2dims.xls,Sheet1) df df的结构为&#xff1a; 如上图所示df是一个二维表。 # 将二维数据表转化为一维数据表&#xff1a; new_data df.set_index(地区) #…

java 二维表格_实现二维表

create or replace function getGoodsMsgForProtocol( str_in in varchar2,str_classId in varchar2)--分类字 return varchar2 is str_list varchar2(4000) default null;--连接后字符串 str_int number(2) default 0; begin for x in ( select goods.goodsname,goods.specs f…

二维表 转一维表 mysql_Excel二维表转换成一维表(2种方法)

今天大年初四&#xff0c;春节假期还剩三天了&#xff0c;每逢佳节胖三斤&#xff0c;亲们可要注意控制饮食了&#xff0c;要不然春节后无脸见人哟。闲话少说&#xff0c;今日分享如下。 在做数据处理的时候&#xff0c;有的时候为了处理方便我们需要将二维的数据表处理成一维的…

【一起学Rust | 进阶篇 | Grid库】二维表数据结构——Grid

文章目录 前言一、Grid安装和引入二、使用1. 运行官方案例2. Grid宏3. new4. init5. from_vec6. get7. get_mut8. size9. rows10. cols11. is_empty12. clear13. iter14. iter_mut15. iter_col16. iter_col_mut17. iter_row18. iter_row_mut19. push_row20. push_col21. pop_ro…

数据库中的二维表—巧借Excel

一维表和二维表的区别 一维表也常称为流水线表格&#xff0c;它和二维表做出的数据透视表最大的区别在于"行总计"。判断数据是一维表格还是二维表格的一个最简单的办法&#xff0c;就是看其列的内容--每一列是否是一个独立的参数。如果每一列都是独立的参数那就是一维…

倾向得分加权匹配分析方法的R实现

1.1 PSW Package 简介 PSW : Propensity Score Weighting Methods for Dichotomous Treatments. 该包由Huzhang Mao 和LiangLi两位作者贡献&#xff0c;首次发布于2017年10月&#xff1b;该包主要运用倾向得分加权分析方法实现因果效应的推断&#xff1b;主要由5个函数模块构成…

python倾向匹配得分_手把手教你做倾向评分匹配 -PSM

原标题:手把手教你做倾向评分匹配 -PSM 本文首发于“百味科研芝士”微信公众号,转载请注明:百味科研芝士,Focus科研人的百味需求。 各位科研芝士的朋友大家好,今天和大家分享一下新的知识点—PSM,或许大家早已听过这个名词了,或许你对它还是半知半解,不过没关系,希望…

回归问题的置信区间AUC_互助问答第193期:倾向得分匹配法与面板数据问题

问题一&#xff1a;老师您好&#xff01;我的问题是倾向得分匹配法之前要对匹配变量进行选择&#xff0c;我看见连玉君老师的一篇文章中主要是对处理变量和匹配变量做logit回归&#xff0c;然后根据准R方和AUC值判断&#xff0c;两者越大越好&#xff0c;通常来说AUC应该大于0.…

倾向值匹配法的概述和应用+倾向值分析:统计方法与应用

倾向值匹配法的概述和应用 一、因果推论理论概述 1.在应用倾向值匹配法进行因果推断时需要注意后续的检验理论&#xff0c;否则容易妄议因果。 2.什么是倾向值匹配法&#xff1f; 将各个手册单元多维度的信息&#xff0c;使用统计方法简化成一维的数值&#xff0c;是为倾向值…

因果推断(二)倾向匹配得分(PSM)

因果推断&#xff08;二&#xff09;倾向匹配得分&#xff08;PSM&#xff09; 前文介绍了如何通过合成控制法构造相似的对照组&#xff0c;除此之外&#xff0c;也可以根据倾向匹配得分&#xff08;PSM&#xff09;进行构造&#xff0c;即为每一个试验组样本在对照组中找对与…

PSM倾向得分匹配代码和案例数据

PSM倾向得分匹配代码和案例数据 含义&#xff1a;倾向评分匹配&#xff08;Propensity Score Matching&#xff0c;简称PSM&#xff09;是一种统计学方法&#xff0c;用于处理观察研究&#xff08;Observational Study&#xff09;的数据。 在观察研究中&#xff0c;由于种种…