C#中如何将txt文件在ListView中按列显示
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中如何将txt文件在ListView中按列显示相关的知识,希望对你有一定的参考价值。
参考技术A你好,软糖帮你做了一个读取TXT的程序。
这个数据格式需要有分割符才好被切分。处理成类似下面这样的
商品编码:001,商品名称:香蕉250g, 中类名称:水果, 规格型号:A1,计量单位:吨, 订货数量:3400,库存数量:3400,商品产地:哥伦比亚
商品编码:002,商品名称:梨子500g, 中类名称:水果, 规格型号:A1,计量单位:吨, 订货数量:6400,库存数量:3400,商品产地:菲律宾
商品编码:003,商品名称:芒果750g, 中类名称:水果, 规格型号:A1,计量单位:吨, 订货数量:7400,库存数量:3400,商品产地:泰国
商品编码:004,商品名称:牛奶250ml, 中类名称:奶制品, 规格型号:A1,计量单位:箱, 订货数量:84000,库存数量:3400,商品产地:新西兰
然后上代码咯,主要用一个DataTable暂存数据,以免出现某字段缺失导致的错位。
然后使用StreamReader读取TXT文本,最后把DataTable的数据集逐项添加到ListView,详细用法请看代码。
using System.IO;namespace ListView用法
public partial class Form1 : Form
//第一个字段为主键:商品编码
List<string> 字段列表 = new List<string>()
"商品编码", "商品名称", "中类名称", "规格型号",
"计量单位", "订货数量", "库存数量", "商品产地" ;
List<int> 显示宽度 = new List<int>() 80, 120, 80, 80, 80, 80, 100, 160 ;
public string[] 分隔符 = "," ;
public string[] 值分隔符 = ":" ;
public string 数据文件路径 = @"J:\\Mini\\ListView用法\\ListView用法\\TestData.txt";
DataTable 数据表;
public Form1()
InitializeComponent();
private void Form1_Load(object sender, EventArgs e)
listView1.View = View.Details;
for (int i = 0; i < 字段列表.Count; i++)
string 字段名 = 字段列表[i];
listView1.Columns.Add(字段名, 字段名, 显示宽度[i]);
var k = listView1.Items.Add("暂无数据");
k.BackColor = Color.LightPink;
private void 测试()
初始化数据表();
读取文档到数据表(数据文件路径);
显示在listview();
private void 初始化数据表()
数据表 = new DataTable();
for (int i = 0; i < 字段列表.Count; i++)
string 字段名 = 字段列表[i];
数据表.Columns.Add(字段名, typeof(string));
private void 读取文档到数据表(string 路径)
StreamReader sr = new StreamReader(路径, Encoding.Default);
while (true)
string 行文本 = sr.ReadLine();
if (行文本 == null) break; else
//开始逐行分析文本
if (行文本.Length > 1)
//这里分隔符必须是一个string数组,可以只有一个元素
var 数据 = 行文本.Split(分隔符, StringSplitOptions.RemoveEmptyEntries);
if (数据 != null && 数据.Length > 0)
DataRow row = 数据表.NewRow();
foreach (var 项 in 数据)
var 字段和值 = 项.Split(值分隔符, StringSplitOptions.RemoveEmptyEntries);
if (字段和值 != null && 字段和值.Length >= 2)
var 字段 = 字段和值[0].Trim();
var 值 = 字段和值[1].Trim();
if (字段列表.Contains(字段)) row[字段] = 值;
数据表.Rows.Add(row);
private void 显示在listview()
listView1.Items.Clear();
int 列数 = 数据表.Columns.Count;
for (int i = 0; i < 数据表.Rows.Count; i++)
var 记录 = 数据表.Rows[i];
string 编号 = 记录[字段列表[0]].ToString();
var 列表项 = listView1.Items.Add(编号, 编号);
for (int y = 1; y < 列数; y++)
string 值 = 记录[y].ToString();
列表项.SubItems.Add(值);
private void button1_Click(object sender, EventArgs e)
测试();
以上是关于C#中如何将txt文件在ListView中按列显示的主要内容,如果未能解决你的问题,请参考以下文章