asp.net读取CSV
2021-06-19 06:04
标签:ack 文件的 vba build alt tab 替换 for amp 用Excel导了两天数据,各种问题,折磨客户也折磨了自己,以前没发现的问题一下子都暴露出来了 特意收集两篇Excel跟CSV读取相关的两篇文章 asp.net读取excel文件,将excel文件先上传,在读取,最后删除。 但有一个问题,那就是excel文件夹需要有读写的权限,IIS需要为asp.net用户开通权限的。 而且excel文件本身存在安全隐患,那就是它可以运行vba程序。所以从安全角度考虑,上传excel是个不好的方法。 今天介绍另一种方法,读取CVS文件。 Step1.拖一个fileupload和button控件。 Step2.双击button,在button事件中写下列代码。 protected void btnUpload_Click(object sender, EventArgs e) { if (FileUploadCVS.HasFile) { if (System.IO.Path.GetExtension(FileUploadCVS.FileName) == ".csv") { DataTable dt = GetdataFromCVS(FileUploadCVS); } } } Step3. 写读取CVS文件的函数。 public static DataTable GetdataFromCVS(FileUpload fileload) { DataTable dt = newDataTable(); StreamReader sr = newStreamReader(fileload.PostedFile .InputStream); string strTitle = sr.ReadLine(); string[] strColumTitle = strTitle.Split(‘,‘); //CVS 文件默认以逗号隔开 for (int i = 0; i { dt.Columns.Add(strColumTitle[i]); } while (!sr.EndOfStream) { string strTest = sr.ReadLine(); string[] strTestAttribute = strTest.Split(‘,‘); DataRow dr = dt.NewRow(); for (int i = 0; i { dr[strColumTitle[i]] = strTestAttribute[i]; } dt.Rows.Add(dr); } return dt; } 记得加上System.IO 命名空间。StreamReader 是在这个namespace下的。很多跟输入输出相关的累都在这个命名空间下 经常用到csv文件,一直用odbc进行读取,但是在unicode编码的时候读取不正确,有时候就算是ANSI编码,如一列数据混编,读取也不正确。不清楚是不是个人电脑的问题。只好自己写个来实现简单的读取,解析含","及"""号CSV文件。 更新1:使用中发现有些软件生存csv文件时,所有数据默认带有"",以前代码处理带引号空字段数据不正确。 代码如下,默认用UTF8编码,一次性读取整个CSV文件,若谁试用了此段代码,有问题请反馈给我,谢谢。 asp.net读取CSV 标签:ack 文件的 vba build alt tab 替换 for amp 原文地址:http://www.cnblogs.com/itjeff/p/7193530.html ///