C# 获得Excel工作簿Sheet页面(工作表)集合的名称

         #region 获取Excel工作薄中Sheet页(工作表)名集合
        /// <summary>
        /// 获取Excel工作薄中Sheet页(工作表)名集合
        /// </summary>
        /// <param name="excelFile">Excel文件名称及路径,EG:C:\Users\JK\Desktop\导入測试.xls</param>
        /// <returns>Sheet页名称集合</returns>
        private String[] GetExcelSheetNames(string fileName)
        {
            OleDbConnection objConn = null;
            System.Data.DataTable dt = null;
            try
            {
                string connString=string.Empty;
                string FileType =fileName.Substring(fileName.LastIndexOf("."));
                if (FileType == ".xls")
                 connString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
                    "Data Source=" + fileName + ";Extended Properties=Excel 8.0;";
                else//.xlsx
                    connString = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + fileName + ";" + ";Extended Properties=\"Excel 12.0;HDR=YES;IMEX=1\"";
                // 创建连接对象
                objConn = new OleDbConnection(connString);
                // 打开数据库连接
                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)
                {
                    string strSheetTableName = row["TABLE_NAME"].ToString();
                    //过滤无效SheetName
                    if (strSheetTableName.Contains("$")&&strSheetTableName.Replace("'", "").EndsWith("$"))
                    {
                        excelSheets[i] = strSheetTableName.Substring(0, strSheetTableName.Length - 1);
                    }
                    i++;
                }
                return excelSheets;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
                return null;
            }
            finally
            {
                // 清理
                if (objConn != null)
                {
                    objConn.Close();
                    objConn.Dispose();
                }
                if (dt != null)
                {
                    dt.Dispose();
                }
            }
        }
        #endregion

版权声明:笔者:jiankunking 资源:http://blog.csdn.net/jiankunking 本文版权归作者和CSDN合伙人,欢迎转载。但是,如果没有从本节宣布提交权限必须保留,并连接到原来的文章页给出视在位置。

时间: 2024-08-05 03:44:35

C# 获得Excel工作簿Sheet页面(工作表)集合的名称的相关文章

[VBA]汇总多个工作簿的指定工作表到同一个工作簿的指定工作表中

sub 汇总多个工作簿() Application.ScreenUpdating = False Dim wb As Workbook, f As String, l As String, n As String, m As String, j As Integer f = ThisWorkbook.Path & "\" l = f & "*.xls" m = Dir(l) Do While m <> "" If m

POI教程之第一讲:创建新工作簿, Sheet 页,创建单元格

第一讲 Poi 简介 Apache POI 是Apache 软件基金会的开放源码函数库,Poi提供API给java程序对Microsoft Office格式档案读和写的功能. 1.创建新工作簿,并给工作簿命名 Workbook wb=new HSSFWorkbook(); // 定义一个新的工作簿 FileOutputStream fileOut=new FileOutputStream("c:\\用Poi搞出来的工作簿.xls"); wb.write(fileOut); fileOu

怎么拆分一个Excel工作簿中的多个工作表?

打开需要编辑的Excel文档.如图所示,工作簿下方有很多工作表.现在需要将这些工作表单独拆分开成一个个工作簿.   右键任意一个工作表标签,在弹出的下拉列表中选择查看代码.即弹出代码窗口.如下图所示.   点击菜单插入-模块 在弹出的模块对话框中 输入以下代码: Private Sub 分拆工作表()       Dim sht As Worksheet       Dim MyBook As Workbook       Set MyBook = ActiveWorkbook       Fo

POI教程之第二讲:创建一个时间格式的单元格,处理不同内容格式的单元格,遍历工作簿的行和列并获取单元格内容,文本提取

第二讲 1.创建一个时间格式的单元格 Workbook wb=new HSSFWorkbook(); // 定义一个新的工作簿 Sheet sheet=wb.createSheet("第一个Sheet页"); // 创建第一个Sheet页 //第一个单元格 Row row=sheet.createRow(0); // 创建一个行 Cell cell=row.createCell(0); // 创建一个单元格 第1列 cell.setCellValue(new Date()); // 给

VBA学习笔记之工作簿

Workbook工作簿的常用功能: 1. 新建工作簿 Dim wb As Workbook Application.SheetsInNewWorkbook = 1     '设置初始工作簿中的工作表数 Set wb = Application.WorkBooks.Add wb.Worksheets(1).name = "表1"                '给第一个工作表设置名称 Application.SheetsInNewWorkbook = 3 2.用Excel对话框打开Exc

工作簿合并

同一文件夹内N个工作簿 ,每个工作簿里N个工作表,最终合并到一个工作表里的代码. 假设每个表格结构相同,第一行为标题,第二行为表头,表头内容固定,行数不固定,列固定14,工作表数量不固定,工作簿数量不固定. Sub Sample() Dim MyWb As Workbook Dim MySht As Worksheet Dim MyName As String, MyPath As String Dim MyRow As Long, MySRow As Long, MyShtN As Long

把多个Excel文件合并到一个Excel文件的多个工作表(Sheet)里

实现的功能是把多个Excel文件的第一个工作表(Sheet)合并到一个Excel文件的多个工作表里,并且新工作表的名称等于原Excel文件的文件名.开发环境Excel2007,但是Excel2003应该也能用,Excel2000似乎不能用.代码如下: '功能:把多个工作簿的第一个工作表合并到一个工作簿的多个工作表,新工作表的名称等于原工作簿的名称 新建的excel新表---书签sheet1--右击查看代码-复制代码进入---运行-选择需要合并的表--OKSub Books2Sheets()   

php读写excel类,支持多工作簿和自定义样式

<?php /** * @desc excel接口 * @author mengdejun */ interface IExcel { //导入excel public function import($fileName,$convert_callback_function=null); //导出excel public function export($fileName="excel"); //添加行 public function addRow(array $array,$s

C#如何设置Excel文档保护——工作簿、工作表、单元格

简介 Excel在工作和学习中应用广泛,是必不可少的数据统计与处理工具.对于一些重要的Excel文件,只供特殊人员查看.编辑或者防止重要数据对外泄露时,就需要设置文档保护,包括设置访问密码.设置文件只读等操作.本篇文章将介绍如何使用C#来设置Excel工作簿和工作表的保护,示例内容涉及以下要点 加密Excel工作簿 解密Excel工作簿 加密Excel工作表3.1加密整个工作表3.2 锁定单元格区域 解密工作表 隐藏单元格公式 工具使用 Spire. XLS for .NET 8.0 PS: 安