c 讀取Excel的第一個Sheet表
阿新 • • 發佈:2018-11-13
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow
也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!
有朋友問道:
[c-sharp] view plain copy print ?- public
- {
- ArrayList al = new ArrayList();
- string
- strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties=/"Excel 8.0;HDR=Yes;IMEX=1;/";";
- OleDbConnection conn = new
- conn.Open();
- DataTable sheetNames = conn.GetOleDbSchemaTable
- (System.Data.OleDb.OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
- conn.Close();
- foreach (DataRow dr in sheetNames.Rows)
- {
- al.Add(dr[2]);
- }
- return al;
- }
這個方法獲取的EXCEL表名是按字母順序排列的,如果我要獲得EXCEL的第一個工作表名,怎麼做?
其實利用Framework提供的Excel 物件模型很容易解決這個問題,下面是邀月的測試過程及程式碼:邀月注:本文版權由邀月和CSDN共同所有,轉載請註明出處。
新建一控制檯專案,新增兩個dllMicrosoft.Office.Interop.Excel
Microsoft.VisualBasic
如圖:
新增程式碼:
[c-sharp] view plain copy print ?using System;using System.Collections.Generic;using System.Text;//add namespaceusing Microsoft.Office.Interop.Excel;namespace ReadFirstSheetNameDemo{ public class Program { public static void Main(string[] args) { //Get Xth SheetName of Excel File Console.WriteLine(GetFirstSheetNameFromExcelFileName("C://test.xls",1)); Console.ReadKey(); } public static string GetFirstSheetNameFromExcelFileName(string filepath,int numberSheetID) { if (!System.IO.File.Exists(filepath)) { return "This file is on the sky??"; } if (numberSheetID <= 1) { numberSheetID = 1; } try { 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 strFirstSheetName = 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); strFirstSheetName = ((Microsoft.Office.Interop.Excel.Worksheet)objWB.Worksheets[1]).Name; objWB.Close(Type.Missing, Type.Missing, Type.Missing); objWB = null; obj.Quit(); obj = null; return strFirstSheetName; } catch (Exception Err) { return Err.Message; } } }}
- using System;
- using System.Collections.Generic;
- using System.Text;
- //add namespace
- using Microsoft.Office.Interop.Excel;
- namespace ReadFirstSheetNameDemo
- {
- public class Program
- {
- public static void Main(string[] args)
- {
- //Get Xth SheetName of Excel File
- Console.WriteLine(GetFirstSheetNameFromExcelFileName("C://test.xls",1));
- Console.ReadKey();
- }
- public static string GetFirstSheetNameFromExcelFileName(string filepath,int numberSheetID)
- {
- if (!System.IO.File.Exists(filepath))
- {
- return "This file is on the sky??";
- }
- if (numberSheetID <= 1) { numberSheetID = 1; }
- try
- {
- 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 strFirstSheetName = 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);
- strFirstSheetName = ((Microsoft.Office.Interop.Excel.Worksheet)objWB.Worksheets[1]).Name;
- objWB.Close(Type.Missing, Type.Missing, Type.Missing);
- objWB = null;
- obj.Quit();
- obj = null;
- return strFirstSheetName;
- }
- catch (Exception Err)
- {
- return Err.Message;
- }
- }
- }
- }
結果:
參考資料:
http://www.cnblogs.com/downmoon/archive/2008/08/20/1272185.html
http://msdn.microsoft.com/zh-cn/library/aa168292%28office.11%29.aspx#EDAA
助人等於自助! [email protected]