csharp read excel file get sheetName list

 1         /// <summary>
 2         ///      
 3         /// 塗聚文
 4         /// 20120803
 5         /// Geovin Du
 6         ///找到EXCEL的工作表名称 要考慮打開的文件的進程問題
 7         /// </summary>
 8         /// <param name="filename"></param>
 9         /// <param name="comboBox2"></param>
10         /// <returns></returns>
11         public static System.Data.DataTable getSheetName(string filename, ComboBox comboBox2)
12         {
13             System.Data.DataTable dtSheets = new System.Data.DataTable();
14             try
15             {
16                 
17                 dtSheets.Columns.Add("id", typeof(int));
18                 dtSheets.Columns.Add("SheetName", typeof(string));            
19                 object objOpt = Missing.Value;
20                 Excel.Application excelApp = new Excel.Application();
21                 excelApp.Workbooks.Open(filename, objOpt, objOpt, objOpt, objOpt, objOpt, true, objOpt, objOpt, true, objOpt, objOpt, objOpt, objOpt, objOpt);
22                 for (int i = 0; i < excelApp.Workbooks[1].Worksheets.Count; i++)
23                 {
24                     Excel.Worksheet ws = (Excel.Worksheet)excelApp.Workbooks[1].Worksheets[i + 1];
25                     string sSheetName = ws.Name;
26                     dtSheets.Rows.Add(i, ws.Name);
27                 }
28                 comboBox2.DataSource = dtSheets;
29                 comboBox2.DisplayMember = "SheetName";
30                 comboBox2.ValueMember = "id";
31                 comboBox2.AutoCompleteMode = AutoCompleteMode.Suggest;
32                 comboBox2.AutoCompleteSource = AutoCompleteSource.ListItems;
33                 KillExcelProceed();
34                 Kill(excelApp);
35             }
36             catch (IOException ex)
37             {
38                 ex.Message.ToString();
39             }
40             return dtSheets;
41         }
42         /// <summary>
43         ///      
44         /// 塗聚文 締友計算機信息技術有限公司
45         /// 20120803
46         /// Geovin Du
47         /// </summary>
48         /// <param name="filename"></param>
49         /// <param name="comboBox2"></param>
50         /// <returns></returns>
51         public static System.Data.DataTable getGeovinDuSheetName(string filename, ComboBox comboBox2)
52         {
53             System.Data.DataTable dtSheets = new System.Data.DataTable();
54             
55 
56             try
57             {
58 
59                 dtSheets.Columns.Add("id", typeof(int));
60                 dtSheets.Columns.Add("SheetName", typeof(string));
61                 string connectionString = String.Format(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=""Excel 8.0;HDR=YES;IMEX=1;""", filename); //高版本用:Microsoft.ACE.OLEDB.12.0
62                 DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.OleDb");
63                 DbConnection connection = factory.CreateConnection();
64                 connection.ConnectionString = connectionString;
65                 connection.Open();
66                 DataTable tbl = connection.GetSchema("Tables");
67                 connection.Close();
68                 int i = 0;
69                 foreach (DataRow row in tbl.Rows)
70                 {
71                     string sheetName = (string)row["TABLE_NAME"];
72                     if (sheetName.EndsWith("$"))
73                     {
74                         sheetName = sheetName.Substring(0, sheetName.Length - 1);
75                     }
76                     //繁體系統需要此操作,簡體的不需要也可以
77                     sheetName = sheetName.Replace("$", "");
78                     sheetName = sheetName.Replace("'", "");
79                     dtSheets.Rows.Add(i,sheetName.Replace("$", ""));
80                     i++;
81                 }
82                 comboBox2.DataSource = dtSheets;
83                 comboBox2.DisplayMember = "SheetName";
84                 comboBox2.ValueMember = "id";
85                 comboBox2.AutoCompleteMode = AutoCompleteMode.Suggest;
86                 comboBox2.AutoCompleteSource = AutoCompleteSource.ListItems;
87 
88                 return dtSheets;
89             }
90             catch (IOException ex)
91             {
92                 ex.Message.ToString();
93                 return null;
94             }
95                 
96         }

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/537144.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Bean的生命周期以及IOC源码解析

IOC源码这一块太多只能讲个大概吧&#xff0c;建议还是去买本Spring IOC源码解析的书来看比较好&#xff0c;我也是自己看源代码以及视频整理的笔记 Bean的生命周期大概可以分为四个阶段&#xff0c;具体的等会再说&#xff0c;先看看IOC的源码吧 1、bean的创建 2、bean的属…

python3绘图_python3绘图示例2(基于matplotlib:柱状图、分布图、三角图等)

#!/usr/bin/env python# -*- coding:utf-8 -*-from matplotlib import pyplot as pltimport numpy as npimport pylabimport os,sys,time,math,random# 图1-给已有的图加上刻度filer‘D:\jmeter\jmeter3.2\data\Oracle数据库基础.png‘arrnp.array(file.getdata()).reshape(fil…

bzoj4152-[AMPPZ2014]The_Captain

Description 给定平面上的n个点&#xff0c;定义(x1,y1)到(x2,y2)的费用为min(|x1-x2|,|y1-y2|)&#xff0c;求从1号点走到n号点的最小费用。 Input 第一行包含一个正整数n(2<n<200000)&#xff0c;表示点数。 接下来n行&#xff0c;每行包含两个整数x[i],yi&#xff0c;…

python日志统计_python试用-日志统计

最近两天尝试用python代替bash写Linux Shell脚本来统计日志。发现python写起来比bash更简单和容易阅读&#xff0c;发现不少惊喜。所以写了一个粗糙的脚本来统计日志。目标1、通过简单命令和脚本统计事件发生数2、日志限定文本类型假定环境日志文件&#xff1a;1.logtest:aaa,1…

Spring AOP两种使用方式以及如何使用解析

AOP是一种面向切面编程思想&#xff0c;也是面向对象设计&#xff08;OOP&#xff09;的一种延伸。 在Spring实现AOP有两种实现方式&#xff0c;一种是采用JDK动态代理实现&#xff0c;另外一种就是采用CGLIB代理实现&#xff0c;Spring是如何实现的在上篇已经讲到了Spring Be…

如何用python生成可执行程序必须经过_python怎么生成可执行文件

.py文件&#xff1a;对于开源项目或62616964757a686964616fe58685e5aeb931333363393664者源码没那么重要的&#xff0c;直接提供源码&#xff0c;需要使用者自行安装Python并且安装依赖的各种库。(Python官方的各种安装包就是这样做的).pyc文件&#xff1a;有些公司或个人因为机…

Jmeter 老司机带你一小时学会Jmeter

Jmeter的安装 官网下载地址&#xff1a;http://jmeter.apache.org/download_jmeter.cgi 作为Java应用&#xff0c;是需要JDK环境的&#xff0c;因此需要下载安装JAVA&#xff0c;并且作必要的的环境变量配置。 一、bin目录 examples:    目录中有CSV样例 jmeter.bat/jmeter…

MongoDB位运算基本使用以及位运算应用场景

最近在公司业务上用到了二进制匹配数据&#xff0c;但是MongoDB进行二进制运算&#xff08;Bitwise&#xff09;没用过&#xff0c;网上博客文章少&#xff0c;所以就上官网看API&#xff0c;因此记录一下&#xff0c;顺便在普及一下使用二进制位运算的一些应用。 在MongoDB的…

好用的下拉第三方——nicespinner

1.简介 GitHub地址&#xff1a;https://github.com/arcadefire/nice-spinner Gradle中添加&#xff1a; allprojects {repositories {...maven { url "https://jitpack.io" }} }dependencies {implementation com.github.arcadefire:nice-spinner:1.3.7 }2.使用 xml文…

Mybatis配置文件参数定义

官网有时候进不去&#xff0c;所以就记录一下Mybatis的配置文件的各项参数定义&#xff0c;大家也可以上官网查询&#xff0c;官方文档&#xff0c;进不进的去看各自的缘分了 properties 定义配置&#xff0c;在这里配置的属性可以在整个配置文件使用&#xff1b;可以加载指定…

python和java后期发展_Python与java的发展前景谁最大

Python和Java是目前IT行业内两大编程语言&#xff0c;很多人都喜欢拿来比较&#xff0c;一个是后起之秀&#xff0c;潜力无限&#xff1b;一个是行业经典&#xff0c;成熟稳定。对于许多想从事IT行业的同学来说&#xff0c;这两门语言真的很难抉择。那么&#xff0c;Python和Ja…

JDK源码学习笔记——Enum枚举使用及原理

一、为什么使用枚举 什么时候应该使用枚举呢&#xff1f;每当需要一组固定的常量的时候&#xff0c;如一周的天数、一年四季等。或者是在我们编译前就知道其包含的所有值的集合。 利用 public final static 完全可以实现的功能&#xff0c;为什么要使用枚举&#xff1f; public…

Mybatis源码日志模块分析

看源码需要先下载源码&#xff0c;可以去Mybatis的github上的仓库进行下载&#xff0c;Mybatis 这次就先整理一下日志这一块的源码分析&#xff0c;这块相对来说比较简单而且这个模块是Mybatis的基础模块。 之前的文章有谈到过Java的日志实现&#xff0c;大家也可以参考一下&…

python手机端给电脑端发送数据_期货交易软件有哪些比较好用?分手机端和电脑端...

一、电脑端交易软件期货电脑端交易软件目前市场上用的最多的是文华财经和博易大师&#xff0c;这两个软件都是免费交易使用的。从投资者使用角度来看&#xff0c;目前电脑端文华财经的评价比博易大师高一些。当然每个投资者有自己的使用习惯&#xff0c;博易大师也有自己优点&a…

Find the Difference(leetcode389)

2019独角兽企业重金招聘Python工程师标准>>> Given two strings s and t which consist of only lowercase letters. String t is generated by random shuffling string s and then add one more letter at a random position. Find the letter that was added in …

Mybatis源码之数据源模块分析

先来看看java纯jdbc查询数据的示例&#xff1a; try {//加载对应的驱动类Class.forName("com.mysql.cj.jdbc.Driver");//创建连接Connection connection DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test?serverTimezoneUTC", "roo…

reactnative 获取定位_[RN] React Native 获取地理位置

import React, {Component} from react;import {StyleSheet, Text, View}from react-native;exportdefault classTestGeo extends Component {state{longitude:,//经度latitude: ,//纬度city: ,district:,street:,position:,//位置名称};componentWillMount () >{this.getPo…

第二冲刺阶段第三天

查阅资料&#xff0c;修改控件界面转载于:https://www.cnblogs.com/gyy0/p/10066452.html

Mybatis源码之缓存模块分析

缓存这个东西在很多应用中都能看到它们的身影&#xff0c;这次就讲讲在Mybatis中的缓存是怎么应用的&#xff0c;虽然说吧Mybatis中的缓存基本不怎么用&#xff0c;用的更多是第三方组件redis、MongoDB、MemCache等等。 Mybatis的缓存是基于Map实现的&#xff0c;从缓存中读写…

Mybatis源码之核心流程分析

终于谈到了Mybatis最核心的东西了&#xff0c;最核心的就是通过配置XML文件或注解中的SQL&#xff0c;直接调用接口就能执行配置好的SQL语句并封装成对应的返回类型的数据。 先看一下Mybatis使用示例&#xff1a; //创建Builder对象 SqlSessionFactoryBuilder builder new S…