C#讀取CSV,Excel,Txt檔案,刪除檔案,拷貝檔案

來源:互聯網
上載者:User

#region 讀取csv檔案

    /// <summary>

 

    /// 讀取CVS檔案

 

    /// </summary>

 

    /// <param name="path">檔案路徑</param>

 

    /// <param name="name">檔案名稱</param>

 

    /// <returns>DataTable</returns>

 

    public static DataTable ReadCVS(string filepath, string filename) 

 

   {

 

        //string cvsDir = filepath;//要讀取的CVS路徑

 

        DataTable dt = new DataTable();

 

        if (filename.Trim().ToUpper().EndsWith("CSV"))//判斷所要讀取的副檔名

 

        {

 

            string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="

 

                + filepath + ";Extended Properties='text;HDR=NO;FMT=Delimited'";//有列的讀取

 

            string commandText = "select * from [" + filename + "]";//SQL語句
            OleDbConnection olconn = new OleDbConnection(connStr);

 

            olconn.Open();

 

            OleDbDataAdapter odp = new OleDbDataAdapter(commandText, olconn);

 

            odp.Fill(dt);

 

            olconn.Close();

 

            odp.Dispose();

 

            olconn.Dispose();

 

        }

 

        return dt;

 

    }

 

    #endregion

 

 #region 讀取Excel檔案    

 

/// <summary>    

 

/// 讀取Excel檔案   

 

/// </summary>    

 

/// <param name="filepath">檔案路徑</param>    

 

/// <param name="filename">檔案名稱</param>    

 

/// <returns>DataTable</returns>    

 

public static DataTable ReadExcel(string filepath, string filename)

 

{

 

        System.Data.DataSet itemDS = new DataSet();

 

        if (filename.Trim().ToUpper().EndsWith("XLS") || filename.Trim().ToUpper().EndsWith("XLSX"))

 

        {

 

            string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filepath + filename + ";Extended Properties=/"Excel 12.0;HdR=NO;/"";

 

            System.Data.OleDb.OleDbConnection conn = null; 

 

           System.Data.OleDb.OleDbCommand oledbCommd = null;

 

            try

 

            { 

 

               conn = new System.Data.OleDb.OleDbConnection();

 

                conn.ConnectionString = connStr;

 

                conn.Open();

 

                DataTable dt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

 

                //判斷串連Excel sheet名

 

                for (int i = 0; i < dt.Rows.Count; i++)

 

                {

 

                    DataRow dr = dt.Rows[i];

 

                    string sqlText = "select * from [" + dr["TABLE_NAME"] + "]";
                    oledbCommd = new System.Data.OleDb.OleDbCommand(sqlText, conn);

 

                    oledbCommd.CommandTimeout = 100000;

 

                    //執行

 

                    System.Data.OleDb.OleDbDataAdapter oledbDA = new System.Data.OleDb.OleDbDataAdapter(oledbCommd);
                    oledbDA.Fill(itemDS);

 

                }

 

            }

 

            catch

 

            {            }

 

            finally

 

            {

 

                //釋放

 

                oledbCommd.Dispose();

 

                conn.Close();

 

            }

 

            //建立串連
        } 

 

       return itemDS.Tables[0];

 

 } 

 

   #endregion

 

#region 讀取txt檔案
/// <summary>
/// 讀取Txt文字檔
/// </summary>
/// <param name="filepath">檔案路徑</param>
/// <param name="filename">檔案名稱</param>
/// <returns>文本資訊</returns>
public static string ReadTxt(string filepath, string filename)
{
  StringBuilder sb = new StringBuilder("");
  //StreamReader sr = new StreamReader(filepath + filename); ;
  StreamReader sr = new StreamReader(filepath + filename, Encoding.GetEncoding("GB2312"));
  string line;
  while ((line = sr.ReadLine()) != null)
  {
      sb.AppendLine(line);
  }
  sr.Close();
  sr.Dispose();
  return sb.ToString();
}
#endregion

 

#endregion

 

#region 檔案刪除
/// <summary>
/// 刪除檔案操作
/// </summary>
/// <param name="filePath">檔案路徑</param>
/// <param name="fileName">檔案名稱</param>
public static void DeleteFile(string filePath, string fileName)
{
  string destinationFile = filePath + fileName;
  //如果檔案存在,刪除檔案
  if (File.Exists(destinationFile))
  {
    FileInfo fi = new FileInfo(destinationFile);
    if (fi.Attributes.ToString().IndexOf("ReadOnly") != -1)
      fi.Attributes = FileAttributes.Normal;

 

    File.Delete(destinationFile);
  }
}
#endregion

 

/// <summary>
/// 拷貝檔案
/// </summary>
/// <param name="fromFilePath">檔案的路徑</param>
/// <param name="toFilePath">檔案要拷貝到的路徑</param>
private bool CopyFile(string fromFilePath, string toFilePath)
{
  try
  {
    if (File.Exists(fromFilePath))
    {
      if (File.Exists(toFilePath))
      {
        File.Delete(toFilePath);
      }
      File.Move(fromFilePath, toFilePath);
      return true;
    }
  return false;
  }
  catch 
  {
    return false;
  }
}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.