在很多实际业务中,经常会有从外部CSV文件数据导入到系统里,更新数据库,或者更新云端Entity。
这个是非常简单的一个应用,具体也可以查看微软官方文档。
1. 安装Visula Studio,目前的最新版本是2019版,也可以是旧的2017版,2015版都可以。
2. 新建工程,建一个控制台.NET Framework的项目即可。
3. 插入以下代码,注释部分有些日文,大家可以无视啊。不好意思,懒得修改了,不影响实际效果。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace csvread { class Program { static void Main(string[] args) { ReadCsv(); Console.ReadKey(); } static void ReadCsv() { try { // csvファイルを開く using (var sr = new System.IO.StreamReader(@"銀行振込情報.csv")) { // ストリームの末尾まで繰り返す while (!sr.EndOfStream) { // ファイルから一行読み込む string line = sr.ReadLine(); // 読み込んだ一行をカンマ毎に分けて配列に格納する string[] values = line.Split(','); // 出力する for (int i = 0; i < values.Length; i++) { System.Console.Write("{0} ", values[i]); } System.Console.WriteLine(); } } } catch (System.Exception e) { // ファイルを開くのに失敗したとき System.Console.WriteLine(e.Message); } } } }4. csv文件现在命名是“銀行振込情報.csv”、大家可以自己修改。
编译完后,准备好csv文件,放入到代码工程的debug文件夹下,不然运行的时候会检出异常,由于文件找不到。
csv文件内容大家就自己随便写。我这边是以下数据。
Date Name Amount 2019/5/25 Jack 30000 2019/5/26 Mack 30001 2019/5/27 Hack 30002 2019/5/28 Sack 300035. 输出结果:
6. Debug确认中途变化的内容:
第一行,i=0的时候,line和values数据的结果如下:
第二行,i=0的时候,line和values数据的结果如下:
第三行,i=0的时候,line和values数据的结果如下:
第四行,i=0的时候,line和values数据的结果如下:
第五行,i=0的时候,line和values数据的结果如下:
7. 通过自己的Debug确认中间过程,对于程序的执行就有了更加清晰的理解。
string line = sr.ReadLine(); //逐行读取csv文件文本,中间还会多出来‘,’,作为整体的字符串进行保存。
string[] values = line.Split(','); //将中间的‘,’作为分界限隔离成字符串数据。
8. 关于StreamReader Class的说明和使用可以查询微软.NET Framework
https://docs.microsoft.com/zh-cn/dotnet/api/system.io.streamreader?view=netframework-4.8