Excel의 첫 번째 워크시트 이름 가져오기

6067 단어 Excel
때때로 Excel의 데이터를 대량으로 데이터베이스에 가져와야 한다. 이때 Excel 파일의 작업표 이름을 얻어야 한다. 많은 파일들이 첫 번째 작업표에만 데이터가 있기 때문에 첫 번째 작업표의 이름 방식도 다르다. 예를 들어 어떤 것은 영문 이름이고 어떤 것은 중국어 이름이다. 어떤 네티즌들은 모든 작업표의 이름을 얻기 위해 아래의 방법을 제공했다
 /// <summary>

        ///  Excel 

        /// </summary>

        /// <param name="excelFile"></param>

        /// <returns></returns>

        public String[] GetExcelSheetNames(string excelFile)

        {



            OleDbConnection objConn = null;

            System.Data.DataTable dt = null;

            try

            {

                // .xls .xlsx   

                string strConn = "Provider=Microsoft.Ace.OleDb.12.0;" + "data source=" + excelFile + ";Extended Properties='Excel 12.0; HDR=NO; IMEX=1'";

                objConn = new OleDbConnection(strConn);

                objConn.Open();

                dt = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

                if (dt == null)

                {

                    return null;

                }

                String[] excelSheets = new String[dt.Rows.Count];

                int i = 0;

                foreach (DataRow row in dt.Rows)

                {

                    excelSheets[i] = row["TABLE_NAME"].ToString();

                    i++;

                }

                return excelSheets;

            }

            catch

            {

                return null;

            }

            finally

            {

                if (objConn != null)

                {

                    objConn.Close();

                    objConn.Dispose();

                }

                if (dt != null)

                {

                    dt.Dispose();

                }

            }

        }

이런 방법은 Excel의 모든 작업표의 이름을 얻을 수 있지만, 결과는 정렬을 거친 것이지, Excel의 작업표 순서에 따라 되돌아오는 것이 아니기 때문에 첫 번째 작업표의 이름을 얻을 수 없다.다음 방법은 테스트를 통해 첫 번째 워크시트 이름을 얻을 수 있습니다.
Microsoft.Office.Interop.Excel.Application obj = default(Microsoft.Office.Interop.Excel.Application);

Microsoft.Office.Interop.Excel.Workbook objWB = default(Microsoft.Office.Interop.Excel.Workbook);

string FirstSheetName = null;

obj = (Microsoft.Office.Interop.Excel.Application)Microsoft.VisualBasic.Interaction.CreateObject("Excel.Application", string.Empty);

objWB = obj.Workbooks.Open(filepath, Type.Missing, Type.Missing,

Type.Missing, Type.Missing, Type.Missing, Type.Missing,  

Type.Missing,Type.Missing, Type.Missing, Type.Missing,  

Type.Missing, Type.Missing,Type.Missing, Type.Missing);

FirstSheetName = ((Microsoft.Office.Interop.Excel.Worksheet)objWB.Worksheets[1]).Name;

objWB.Close(Type.Missing, Type.Missing, Type.Missing);

objWB = null;

obj.Quit();

obj = null;

좋은 웹페이지 즐겨찾기