EXCEL 테이블은 C # DataTable에 제출

    C # 코드는 상이한 방법으로 달성하기 위해, 엑셀 파일 확장자에 따라 DataTable을 엑셀 파일로의 전환을 달성하기 위해, 다음 엑셀 파일 (* .XLSX 및 * .XLS)에 의해 2 개 개의 확장에 따라 달성된다. : 파일 확장자 방법은 위젯 Path.GetExtension (파일 이름) 에있어서, 참조 : 사용 System.IO; 코드하면 다음과 같다 :( 파일명은 다음 코드에 나타나는 곳에 드라이브 문자 절대 경로)

  • 주요 엑셀 파일 확장자 방법 다른 통화에 따르면,

     개인 DataTable을 FileToDataTable ( 문자열 fileName에) 
        { 
            DataTable을 DT = 새로운 DataTable을을 ();
            문자열 extendName = Path.GetExtension (파일 이름); // 获取文件的后缀名
            스위치 (extendName.ToLower ()) 
            { 
                경우  " .XLS " : 
                    DT = XlsToDataTable (파일 이름);
                    휴식 ;
                케이스  " .xlsx '에 ' : 
                    DT = XlsxToDataTable (파일 이름);
                    휴식 ;
                기본값 :
                     휴식 ; 
            } 
            반환 DT; 
        }

     

  • XlsToDataTable ()

     개인 DataTable을 XlsToDataTable ( 문자열 파일 이름) 
        { 
            DataTable에 데이터 테이블은 = 새로운 DataTable을을 (); 
            스트림 스트림 = 널 (null) ;
            시도 
            { 
                스트림 = File.OpenRead (파일 이름); 
                HSSFWorkbook hssfworkbook = 새로운 HSSFWorkbook (스트림); 
                HSSFSheet hssfsheet = (HSSFSheet) hssfworkbook.GetSheetAt (hssfworkbook.ActiveSheetIndex); 
                HSSFRow hssfrow = (HSSFRow) hssfsheet.GetRow ( 0 );
                INT= lastCellNum ( INT ) hssfrow.LastCellNum]
                  ( INT I = ( INT ) hssfrow.FirstCellNum; I <lastCellNum; I ++ ) 
                { 
                    DataColumn에 열 = 새로운 새 를 DataColumn (hssfrow.GetCell (I) .StringCellValue) 
                    dataTable.Columns.Add ( 열); 
                } 
                dataTable.TableName = hssfsheet.SheetName;
                 INT lastRowNum = hssfsheet.LastRowNum;
                 // 열 이름 테이블 패딩 데이터의 두 번째 행의 시작 
                을위한 ( INT I = hssfsheet.FirstRowNum + 1.; I <hssfsheet.LastRowNum; I ++) //
                 { 
                    HSSFRow hssfrow2 = (HSSFRow) hssfsheet.GetRow (I); 
                    된 DataRow의 DataRow = dataTable.NewRow ();
                     ( INT J = ( INT ) hssfrow2.FirstCellNum; J <lastCellNum, J ++) //
                     { 
                        DataRow를 [J] = hssfrow2.GetCell (j); //
                     } 
                    dataTable.Rows.Add (하여 DataRow); 
                } 
                stream.Close (); 
            } 
            캐치 (예외 예) 
            {
                ScriptManager.RegisterStartupScript (페이지, GetType을 (), " alertForm " , " 경고 ( '의 DataTable에 XLS : " + ex.Message + " '); " , 진정한 ); 
            } 
            마지막 
            { 
                경우 (스트림 =! ) 
                { 
                    stream.Close (); 
                } 
            } 
            반환 데이터 테이블을; 
        }

     

  • XlsxToDataTable ()
    공공 DataTable을 XlsxToDataTable ( 문자열 vFilePath는) 
        { 
            DataTable에 데이터 테이블은 = 새로운 DataTable을을 ();
            시도 
            { 
                SLDocument sldocument = 새로운 SLDocument (vFilePath); 
                dataTable.TableName = sldocument.GetSheetNames () [ 0 ]; 
                SLWorksheetStatistics worksheetStatistics = sldocument.GetWorksheetStatistics ();
                INT startColumnIndex = worksheetStatistics.StartColumnIndex;
                INT endColumnIndex =worksheetStatistics.EndColumnIndex;
                INT startRowIndex = worksheetStatistics.StartRowIndex;
                INT endRowIndex = worksheetStatistics.EndRowIndex;
                 ( INT I = startColumnIndex; I <= endColumnIndex; I ++ ) 
                { 
                    SLRstType cellValueAsRstType = sldocument.GetCellValueAsRstType ( 1 , I); 
                    dataTable.Columns.Add (  DataColumn에 (cellValueAsRstType.GetText () 대해서 typeof ( 문자열 ))); 
                } 
                 ( INT J = + startRowIndex1 ; J <= endRowIndex; J ++ ) 
                { 
                    의 DataRow의 DataRow = dataTable.NewRow ();
                     ( INT I = startColumnIndex; I <= endColumnIndex; I ++ ) 
                    { 
                        의 DataRow [I - 1 ] = sldocument.GetCellValueAsString (j, I); 
                    } 
                    dataTable.Rows.Add (하여 DataRow); 
                } 
            } 
            캐치 (예외 예) 
            { 
                던질  새로운 예외 ( " DataTable을에 XLSX을 : \ n " +ex.Message); 
            } 
            반환 데이터 테이블을; 
        }

     

     

     

     

추천

출처www.cnblogs.com/wml-it/p/12133558.html