有朋友问道:
public ArrayList ExcelSheetName(string filepath) { ArrayList al = new ArrayList(); string strConn; strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1;\";"; OleDbConnection conn = new OleDbConnection(strConn); 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 对象模型很容易解决这个问题,下面是邀月的测试过程及代码:
新建一控制台项目,添加两个dll。
Microsoft.Office.Interop.Excel
Microsoft.VisualBasic
添加代码:
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; } } } }
完美解决。
点击查看更多内容
1人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦