asp.Net Excelファイルを読み込む2つの方法、NPOI方法


~_~つのプログラマーの宝を洗う店:クリックしてリンクを開けます
1つ目の方法:従来の方法では、OleDBでEXCELファイルを読み込み、
利点:書き方が簡単で、欠点:サーバはこのコンポーネントをインストールして使用しなければならないので、推奨しません.
  private DataSet GetConnect_DataSet2(string fileName)
        {
            DataSet myDataSet = new DataSet();
            //        
            string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = " + fileName + ";Extended Properties=Excel 8.0";
            OleDbConnection myConn = new OleDbConnection(strCon);
            string strCom = " SELECT * FROM [Sheet1$] ";
            //try
            //{
            myConn.Open();
            //      ,       
            OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, myConn);
            //     DataSet  
            myDataSet = new DataSet();
            //     DataSet  
            myCommand.Fill(myDataSet, "CodeTable");
            //       
            myConn.Close();
            //}
            //catch (Exception ex)
            //{

            //}
            return myDataSet;
        }

第2の方法:サードパーティ製コンポーネント:NPOIコンポーネントを使用して、この方法を推奨します.
まず公式サイトに行きます.http://npoi.codeplex.com/ダウンロードにはdll(.net 2.0または.net 4.0のdllを選択可能)を導入し、Webサイトに参照を追加する必要があります.
NPOIはPOIプロジェクトです.NETバージョン.POIはオープンソースのJava読み書きExcel、WORDなどのマイクロソフトOLE 2コンポーネントドキュメントのプロジェクトです.
NPOIを使用すると、Officeまたは対応する環境がインストールされていないマシンでWORD/EXCELドキュメントを読み書きできます.
NPOIはApache 2.0ライセンス(poiもこのライセンスを採用しています)を採用しています.これは、ビジネスや非ビジネスプロジェクトに使用できることを意味しています.それを使用するために自分のソースコードを開放しなければならない心配はありません.そのため、ビジネスシステムの開発に従事する多くの会社にとって絶対に良い選択です.
もちろん、オープンソースライセンスとして、システムでNPOIを使用する場合は、NPOIのすべての宣言情報を保持する必要があります.ソースコードの変更については、明確な識別が必要です.
 //config       Excel  
        static object basePath = ConfigurationManager.AppSettings["FilePath"];
        #region   Excel  
        /// <summary>
        ///   Excel   table 
        /// </summary>
        /// <param name="filePath">excel    </param>
        /// <returns></returns>
        public static DataTable ReadExcel(string fileName)
        {
            DataTable dt = new DataTable();
            string filePath = "";
            if (basePath != null)
            {
                filePath = HostingEnvironment.MapPath((basePath.ToString() + fileName));
                dt = ImportExcelFile(filePath);
            }
            //      
            if (System.IO.File.Exists(filePath))
            {

            }
            return dt;
        }
        public static DataTable ImportExcelFile(string filePath)
        {
            HSSFWorkbook hssfworkbook;
            #region//     
            try
            {
                using (FileStream file = new FileStream(filePath, FileMode.Open, FileAccess.Read))
                {
                    hssfworkbook = new HSSFWorkbook(file);
                }
            }
            catch (Exception e)
            {
                throw e;
            }
            #endregion

            NPOI.SS.UserModel.ISheet sheet = hssfworkbook.GetSheetAt(0);
            System.Collections.IEnumerator rows = sheet.GetRowEnumerator();
            DataTable dt = new DataTable();
            rows.MoveNext();
            HSSFRow row = (HSSFRow)rows.Current;
            for (int j = 0; j < (sheet.GetRow(0).LastCellNum); j++)
            {
                //dt.Columns.Add(Convert.ToChar(((int)'A') + j).ToString());
                //         
                dt.Columns.Add(row.GetCell(j).ToString ());
            }
            while (rows.MoveNext())
            {
                 row = (HSSFRow)rows.Current;
                DataRow dr = dt.NewRow();
                for (int i = 0; i < row.LastCellNum; i++)
                {
                    NPOI.SS.UserModel.ICell cell = row.GetCell(i);
                    if (cell == null)
                    {
                        dr[i] = null;
                    }
                    else
                    {
                        dr[i] = cell.ToString();
                    }
                }
                dt.Rows.Add(dr);
            }
            return dt;
        }
        #endregion