ImportExcelToDataTable

private DataTable importExcelToDT(string FilePath)
    {
        string strConn;
        strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + FilePath + ";Extended Properties='Excel 8.0; IMEX=1'";
        OleDbConnection conn = new OleDbConnection(strConn);
        OleDbDataAdapter myCommand = new OleDbDataAdapter("SELECT * FROM [ItemLocation$]", strConn);
        DataSet myDataSet = new DataSet();
        try
        {
            myCommand.Fill(myDataSet);

            // 取出數據後刪除文件
            // 刪除已存在的文件
            if (File.Exists(FilePath))
            {
                File.Delete(FilePath);
            }
        }
        catch
        {

        }
        return myDataSet.Tables[0];
    }

 

 private DataTable ImportExcelToDataTable(string tempFileName)
    {
        DataTable dt = new DataTable();

        //創建Excel對象
        Excel.Application excel = new Excel.Application();
        DateTime afterTime = DateTime.Now;
        excel.EnableEvents = false;
        excel.DisplayAlerts = false;
        excel.Visible = false;

        Excel.Workbook wBook = excel.Workbooks.Open(Server.MapPath("~/Temp/" + tempFileName), Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
        int rowCount = ((Excel.Worksheet)excel.ActiveSheet).UsedRange.Rows.Count;
        int colCount = ((Excel.Worksheet)excel.ActiveSheet).UsedRange.Columns.Count;

        try
        {           
            string cellContent;

            for (int iRow = 1; iRow <= rowCount; iRow++)
            {
                DataRow dr = dt.NewRow();
                for (int iCol = 1; iCol <= colCount; iCol++)
                {
                    cellContent = (((Excel.Range)excel.Cells[iRow, iCol]).Value != null) ? ((Excel.Range)excel.Cells[iRow, iCol]).Value.ToString() : "";
                    if (iRow == 1)
                    {
                        dt.Columns.Add(cellContent);
                    }
                    else
                    {
                        dr[iCol - 1] = cellContent;
                    }
                }
                if (iRow != 1)
                    dt.Rows.Add(dr);
            }
        }
        catch (Exception ex)
        {
            return null;
        }
        finally
        {
            wBook.Close(null, null, null);
            excel.Workbooks.Close();
            excel.Application.Quit();
            excel.Quit();

            System.Runtime.InteropServices.Marshal.ReleaseComObject(wBook);
            System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);

            wBook = null;
            excel = null;
        }
        return dt;
    }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章