博客
关于我
C#获取Excel中所有的Sheet名称
阅读量:431 次
发布时间:2019-03-06

本文共 1400 字,大约阅读时间需要 4 分钟。

使用C#与Excel交互读取工作表名称

在C#中使用Excel.Application类可以方便地读取Excel文件中的工作表名称。本节将详细介绍如何实现这一功能。

一、基本操作步骤

  • 创建Excel应用程序实例
  • 首先,我们需要创建一个Excel.Application实例:

    Excel.Application myExcel = new Excel.Application();object missing = System.Reflection.Missing.Value;

    1. 打开Excel文件
    2. 接下来,使用myExcel打开指定的Excel文件:

      myExcel.Application.Workbooks.Open(this.txtFile.Text,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing);

      请确保将this.txtFile.Text替换为实际的Excel文件路径。

      1. 获取工作表
      2. 打开文件后,获取第一个工作表:

        Excel.Workbook myBook = myExcel.Workbooks[1];Excel.Worksheet sheet = (Excel.Worksheet)myBook.Sheets[1];string sheetName = sheet.Name;

        二、获取所有工作表名称

        除了获取单个工作表名称外,我们还可以编写一个函数,获取Excel文件中所有工作表的名称。以下是一个实现代码示例:

        public static StringCollection ExcelSheetName(string filepath){StringCollection names = new StringCollection();string strConn = "Provider=Microsoft.Ace.OLEDB.12.0;Data Source=" + filepath + ";Extended Properties='Excel 12.0;HDR=Yes;IMEX=2'";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){    names.Add(dr[2].ToString());}return names;

        }

        三、注意事项

        在操作完成后,务必按照以下步骤关闭Excel资源:

      3. 关闭工作簿:
      4. myBook.Close(Type.Missing, Type.Missing, Type.Missing);

        1. 退出Excel应用程序:
        2. myExcel.Quit();

          以上代码示例为基础,具体使用时请根据实际需求进行调整。

    转载地址:http://bbfyz.baihongyu.com/

    你可能感兴趣的文章
    org.apache.commons.beanutils.BasicDynaBean cannot be cast to ...
    查看>>
    org.apache.dubbo.common.serialize.SerializationException: com.alibaba.fastjson2.JSONException: not s
    查看>>
    sqlserver学习笔记(三)—— 为数据库添加新的用户
    查看>>
    org.apache.http.conn.HttpHostConnectException: Connection to refused
    查看>>
    org.apache.ibatis.binding.BindingException: Invalid bound statement错误一例
    查看>>
    org.apache.ibatis.exceptions.PersistenceException:
    查看>>
    org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned
    查看>>
    org.apache.ibatis.type.TypeException: Could not resolve type alias 'xxxx'异常
    查看>>
    org.apache.poi.hssf.util.Region
    查看>>
    org.apache.xmlbeans.XmlOptions.setEntityExpansionLimit(I)Lorg/apache/xmlbeans/XmlOptions;
    查看>>
    org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /
    查看>>
    org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:processDebugManifest'
    查看>>
    org.hibernate.HibernateException: Unable to get the default Bean Validation factory
    查看>>
    org.hibernate.ObjectNotFoundException: No row with the given identifier exists:
    查看>>
    org.springframework.amqp.AmqpConnectException:java.net.ConnectException:Connection timed out:connect
    查看>>
    org.springframework.beans.factory.BeanDefinitionStoreException
    查看>>
    org.springframework.boot.context.properties.ConfigurationBeanFactoryMetadata
    查看>>
    org.springframework.boot:spring boot maven plugin丢失---SpringCloud Alibaba_若依微服务框架改造_--工作笔记012
    查看>>
    SQL-CLR 类型映射 (LINQ to SQL)
    查看>>
    org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
    查看>>