asp.net 读取 (导入) CSV文件内容 到页面 (数据库)

来源:互联网 发布:ubuntu terminal 字体 编辑:程序博客网 时间:2024/04/29 02:30

 

ImportCSV类:

public class ImportCSV
    {
        private string path;

        private string fileName;

        public ImportCSV(string filePath, string fileName)//构造函数
        {
            this.path = filePath;
            this.fileName = fileName;
        }

         public DataTable ReadCsvFileToTable()
        {
            return ReadCsvFileToTable(true, ',');
        }

        public DataTable ReadCsvFileToTable(bool HeadYes, char span)
        {
            //文件路径和文件名
            string files = path + fileName;
            DataTable dt = new DataTable();
            StreamReader fileReader = new StreamReader(files, Encoding.Default);
            try
            {
                //是否为第一行(如果HeadYes为TRUE,则第一行为标题行)
                int lsi = 0;
                //列之间的分隔符
                char cv = span;
                while (fileReader.EndOfStream == false)
                {
                    string line = fileReader.ReadLine();
                    string[] y = line.Split(cv);
                    //第一行为标题行
                    if (HeadYes == true)
                    {
                        //第一行
                        if (lsi == 0)
                        {
                            for (int i = 0; i < y.Length; i++)
                            {
                                dt.Columns.Add(y[i].Trim().ToString());
                            }
                            lsi++;
                        }
                        //从第二列开始为数据列
                        else
                        {
                            DataRow dr = dt.NewRow();
                            for (int i = 0; i < y.Length; i++)
                            {
                                dr[i] = y[i].Trim();
                            }
                            dt.Rows.Add(dr);
                        }
                    }

                    //第一行不为标题行

                    else
                    {

                        if (lsi == 0)
                        {
                            for (int i = 0; i < y.Length; i++)
                            {
                                dt.Columns.Add(i.ToString());
                            }
                            lsi++;
                        }

                        DataRow dr = dt.NewRow();

                        for (int i = 0; i < y.Length; i++)
                        {
                            dr[i] = y[i].Trim();
                        }
                        dt.Rows.Add(dr);
                    }
                }
            }

            catch (Exception ex)
            {
                throw ex;
            }

            finally
            {
                fileReader.Close();
                fileReader.Dispose();
            }
            return dt;

        }

    }

 

aspx:

 <div id="importCSV" runat="server">
   
    </div>

 

cs:

 ImportCSV ic = new ImportCSV("D:\\", "ExportCSV.csv"); //CSV文件要事先存在,如果要动态获取客户端电脑上的路径是比较困难的,不过可以用另外一种方法解决这个问题,就是将文件先上传到你指定的目录,然后获取你指定目录的文件,从而把文件里的内容导入到数据库。
                DataTable dt = ic.ReadCsvFileToTable();
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    importCSV.InnerHtml += dt.Rows[i][0].ToString() + "  ";//读取某行某列的值到页面
                    importCSV.InnerHtml += dt.Rows[i][1].ToString() + "  ";
                    importCSV.InnerHtml += dt.Rows[i][2].ToString() + "<br>";
                }

原创粉丝点击