麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

[C#]CSVHelper

2019-11-14 16:22:17
字體:
來源:轉載
供稿:網友

關鍵代碼:

using System.Data;using System.IO;using System.Text;namespace YanZhiwei.DotNet2.Utilities.Common{    /// <summary>    /// CSV文件轉換類    /// </summary>    public static class CSVHelper    {        #region 導出到csv文件        /// <summary>        /// 導出到csv文件        /// eg:        /// CSVHelper.ToCSV(_personInfoView, @"C:/Users/YanZh_000/Downloads/person.csv", "用戶信息表", "名稱,年齡");        /// </summary>        /// <param name="table">DataTable</param>        /// <param name="filePath">導出路徑</param>        /// <param name="tableheader">標題</param>        /// <param name="columname">列名稱,以','英文逗號分隔</param>        /// <returns>是否導出成功</returns>        public static bool ToCSV(this DataTable table, string filePath, string tableheader, string columname)        {            try            {                if (File.Exists(filePath))                    File.Delete(filePath);                using (FileStream _stream = new FileStream(filePath, FileMode.Create, Fileaccess.ReadWrite))                {                    StreamWriter _writer = new StreamWriter(_stream, Encoding.UTF8);                    _writer.WriteLine(tableheader);                    _writer.WriteLine(columname);                    for (int i = 0; i < table.Rows.Count; i++)                    {                        for (int j = 0; j < table.Columns.Count; j++)                        {                            _writer.Write(table.Rows[i][j].ToString());                            _writer.Write(",");                        }                        _writer.WriteLine();                    }                    _writer.Close();                    return true;                }            }            catch            {                return false;            }        }        #endregion        #region  將CSV文件導入到DataTable        /// <summary>        /// 將CSV文件導入到DataTable        /// </summary>        /// <param name="table">DataTable</param>        /// <param name="filePath">csv文件物理路徑</param>        /// <param name="startRowIndex">數據導入起始行號</param>        /// <returns>DataTable</returns>        public static DataTable ImportToTable(this DataTable table, string filePath, int startRowIndex)        {            using (StreamReader reader = new StreamReader(filePath, Encoding.UTF8, false))            {                int j = 0;                while (reader.Peek() > -1)                {                    j = j + 1;                    string _line = reader.ReadLine();                    if (j >= startRowIndex + 1)                    {                        string[] _dataArray = _line.Split(',');                        DataRow _dataRow = table.NewRow();                        for (int k = 0; k < table.Columns.Count; k++)                        {                            _dataRow[k] = _dataArray[k];                        }                        table.Rows.Add(_dataRow);                    }                }                return table;            }        }        #endregion    }}

測試代碼:

using Microsoft.VisualStudio.TestTools.UnitTesting;using System;using System.Data;using YanZhiwei.DotNet2.UtilitiesTests;namespace YanZhiwei.DotNet2.Utilities.Common.Tests{    [TestClass()]    public class CSVHelperTests    {        private DataTable TestTable;        [TestMethod()]        public void ToCSVTest()        {            for (Int16 i = 18; i < 28; i++)            {                DataRow _person = TestTable.NewRow();                _person["Name"] = "YanZhiwei" + i;                _person["Age"] = i;                TestTable.Rows.Add(_person);            }            bool _expected = true;            bool _actual = CSVHelper.ToCSV(TestTable, @"C:/Users/YanZh_000/Downloads/person.csv", "用戶信息表", "名稱,年齡");            Assert.AreEqual(_expected, _actual);        }        [TestInitialize]        public void InitTestTable()        {            TestTable = new DataTable();            TestTable.Columns.Add(new DataColumn("Name", typeof(string)));            TestTable.Columns.Add(new DataColumn("Age", typeof(int)));        }        [TestMethod()]        public void ImportToTableTest()        {            DataTable _personInfoView = TestTable.Clone();            DataTable _expected = TestTable.Clone();            for (Int16 i = 18; i < 28; i++)            {                DataRow _person = _expected.NewRow();                _person["Name"] = "YanZhiwei" + i;                _person["Age"] = i;                _expected.Rows.Add(_person);            }            DataTable _actual = CSVHelper.ImportToTable(_personInfoView, @"C:/Users/YanZh_000/Downloads/person.csv", 2);            Assert.IsTrue(ResultSetComparer.AreIdenticalResultSets(_expected, _actual));        }        [TestCleanup]        public void ResetTable()        {            TestTable = null;        }    }}

測試結果:

image


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久草视频福利在线观看 | 草逼一区| 成人黄视频在线观看 | 国产精品久久久久一区二区 | 久久久久久久久91 | 黄色av网站免费看 | 国产成人精品一区二区三区电影 | 欧美一级小视频 | 黄色网址在线视频 | 精品国产一区二区三区四区在线 | 99视频网址 | 成人免费自拍视频 | 鲁丝一区二区二区四区 | 日韩精品 | 免费一级欧美 | 男人的天堂色偷偷 | 久久亚洲精品久久国产一区二区 | 女女久久| 91一级毛片 | 久久久久久久亚洲精品 | 成人在线不卡 | 毛片成人网 | 久久午夜免费视频 | 在线免费观看麻豆 | 97zyz成人免费视频 | sesee99| 成人在线视频在线观看 | 在线观看免费av网 | 亚洲一区二区三区91 | 久久无毛 | 日韩字幕在线 | 精精国产xxxx视频在线野外 | 亚洲一区 国产精品 | 成片免费观看视频大全 | 蜜桃视频在线播放 | 久久成人国产精品入口 | 在线观看国产网站 | 久久色网站 | 欧美日韩后| 黄色影院在线看 | 沉沦的校花奴性郑依婷c到失禁 |