CSVHelper
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Text; using System.Security.Cryptography; using System.IO; using System.Data; using DEV_JIZHANG.Models; namespace DEV_JIZHANG.Common { public class CSVHelp { public char[] chSplit = new char[] { '|' }; #region public function public DataTable ImportCSVToDataTable( string RecoveryPath, ref string err) { int intColCount = 0; bool blnFlag = true; DataTable mydt = new DataTable("myTableName"); DataColumn mydc; DataRow mydr; //string strpath = "test.wxt"; string strline; string[] aryline; try { System.IO.StreamReader mysr = new System.IO.StreamReader(RecoveryPath); while ((strline = mysr.ReadLine()) != null) { aryline = strline.Split(chSplit); if (blnFlag) { blnFlag = false; intColCount = aryline.Length; for (int i = 0; i < aryline.Length; i++) { mydc = new DataColumn(aryline[i]); mydc.ColumnName = i.ToString(); mydt.Columns.Add(mydc); } } mydr = mydt.NewRow(); for (int i = 0; i < intColCount; i++) { mydr[i] = aryline[i]; } mydt.Rows.Add(mydr); } return mydt; } catch (Exception ex) { err = ex.ToString(); return null; } //dgData.DataSource =mydt; //dgData.DataBind(); } public void DataTableToCSVFile( System.Data.DataTable dt, string BackupPath, string strSplitChar, ref string err) { string row; try { //string header; string tmp; //StreamReader sr = new StreamReader(xbkPath); //header = sr.ReadLine(); //sr.Close(); FileStream fs = File.Create(BackupPath); StreamWriter sw = new StreamWriter(fs); //sw.WriteLine(header); foreach (DataRow dr in dt.Rows) { row = ""; for (int i = 0; i < dt.Columns.Count; i++) { if (i != dt.Columns.Count - 1) { tmp = dr[i].ToString().Trim().Replace(strSplitChar, ""); row = row + tmp + strSplitChar; } else { tmp = dr[i].ToString().Trim().Replace(strSplitChar, ""); row = row + tmp; } } sw.WriteLine(row); } sw.Flush(); sw.Close(); } catch (Exception ex) { err = ex.ToString(); } } //默认密钥向量 public byte[] Keys = { 0xEF, 0xAB, 0x56, 0x73, 0x90, 0x32, 0xCD, 0x12 }; /// <summary> /// DES加密字符串 /// </summary> /// <param name="encryptString">待加密的字符串</param> /// <param name="encryptKey">加密密钥,要求为8位</param> /// <returns>加密成功返回加密后的字符串,失败返回源串</returns> public string EncryptDES(string encryptString, string encryptKey) { try { byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8)); byte[] rgbIV = Keys; byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString); DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider(); MemoryStream mStream = new MemoryStream(); CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write); cStream.Write(inputByteArray, 0, inputByteArray.Length); cStream.FlushFinalBlock(); return Convert.ToBase64String(mStream.ToArray()); } catch { return encryptString; } } #endregion } }