csv. tsv文件的导入 导出功能总结C#
文件导入发生的问题
1.文件格式的指定
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
在.NET中,Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
这行代码的作用是注册一个编码提供者,使得应用程序能够支持更多的字符编码。具体来说,CodePagesEncodingProvider
是一个实现了 EncodingProvider
接口的类,它提供了对额外字符编码页的支持,这些编码页可能不在默认的 .NET 编码集合中。
new StreamReader(stream, Encoding.GetEncoding("shift-jis"));
在.NET中,new StreamReader(stream, Encoding.GetEncoding("shift-jis"));
这行代码创建了一个 StreamReader
对象,用于从指定的 stream
中读取数据,并且指定了使用 Shift-JIS
编码来解码这些数据。
2.数据的处理的检查
做循环利用TryParseRow判断是否正确,每一行的解析是否正确,和设计要求是否字段一致
排序问题一定看清晰
3.传值问题と赋值问题
tsv里的newList还是list要根据要求做处理
list.Update(a,b,c,d)
newList.Select(c => c.Code).ToList();
查询的肯定是有值的,不用再判断是否为空
var values = line.Split('\t');行处理
var Date = values[2];索引一定要检查仔细
4.返回值想retrun 必须task<bool>
必须规定有返回值,别viod,因为是bool,所以return必须有false true
本人经验不多实际做的时候有时想不通。。。。
5.错误处理
按要求的设计书,逻辑一定要清晰,处理的是文件错误一定要throw明确
6.调用问题
a->b
b->c/d/e/f
f->g/h/i/j
层次一定要明确
文件导出发生的问题
1.既然导出肯定是有数据的,先查询数据的来源数据库
导出的位置文件夹的名字,根据要求返回时所需的时间,名称都要明白
2.每行数据转换的要求,数据库导出来是什么格式,导出的路径设置
3. 由于我导出的是一个游戏applist
var list = new List<appInfo>();
list.AddRange(wzList);王者list
list.AddRange(hpjyList);爱与和平list
所以数据出来,值是否符合设计要求,导出的内容检查一遍
public sealed class appInfo
{
/// <summary>
/// 妲己
/// </summary>
[TsvExport(1, "妲己")]
public required string daJi{ get; set; }
/// <summary>
/// 典韦
/// </summary>
[TsvExport(1, "典韦")]
public required string dianWei{ get; set; }
}
[TsvExport(1, "")]这个一定要有,你对应数据库的字段或根据要求写
最后就是这个appInfo.cs的位置,一定是你调用的位置文件夹那里
由于隐私问题没有什么可分享的代码,但是你做完了再看这篇文章也是你当时纠结的。。。。。
4.做程序员沟通问题也非常重要!!!谢谢同事EA帮助我这么多
注意点就这么多,不知不觉2025了,新年快乐啊,谢谢,记得点赞哦!