首页 新闻 会员 周边

如何获取EXCEL第一个表名

0
悬赏园豆:50 [已解决问题] 解决于 2010-02-23 12:01
<pre><span style="color: #0000ff;">public</span><span style="color: #000000;"> ArrayList ExcelSheetName(</span><span style="color: #0000ff;">string</span><span style="color: #000000;"> filepath)<br /> {<br /> ArrayList al </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> ArrayList();<br /> </span><span style="color: #0000ff;">string</span><span style="color: #000000;"> strConn;<br /> strConn </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #800000;">"</span><span style="color: #800000;">Provider=Microsoft.Jet.OLEDB.4.0;Data Source=</span><span style="color: #800000;">"</span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> filepath </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #800000;">"</span><span style="color: #800000;">;Extended Properties=\</span><span style="color: #800000;">"</span><span style="color: #000000;">Excel </span><span style="color: #800080;">8.0</span><span style="color: #000000;">;HDR</span><span style="color: #000000;">=</span><span style="color: #000000;">Yes;IMEX</span><span style="color: #000000;">=</span><span style="color: #800080;">1</span><span style="color: #000000;">;\</span><span style="color: #800000;">"</span><span style="color: #800000;">;</span><span style="color: #800000;">"</span><span style="color: #000000;">;<br /> OleDbConnection conn </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> OleDbConnection(strConn);<br /> conn.Open();<br /> DataTable sheetNames </span><span style="color: #000000;">=</span><span style="color: #000000;"> conn.GetOleDbSchemaTable<br /> (System.Data.OleDb.OleDbSchemaGuid.Tables, </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> </span><span style="color: #0000ff;">object</span><span style="color: #000000;">[] { </span><span style="color: #0000ff;">null</span><span style="color: #000000;">, </span><span style="color: #0000ff;">null</span><span style="color: #000000;">, </span><span style="color: #0000ff;">null</span><span style="color: #000000;">, </span><span style="color: #800000;">"</span><span style="color: #800000;">TABLE</span><span style="color: #800000;">"</span><span style="color: #000000;"> });<br /> conn.Close();<br /> </span><span style="color: #0000ff;">foreach</span><span style="color: #000000;"> (DataRow dr </span><span style="color: #0000ff;">in</span><span style="color: #000000;"> sheetNames.Rows)<br /> {<br /> al.Add(dr[</span><span style="color: #800080;">2</span><span style="color: #000000;">]);<br /> }<br /> </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> al;<br /> }<br />这个方法获取的EXCEL表名是按字母顺序排列的,如果我要获得EXCEL的第一个工作表名,怎么做?<br /> 谢谢!</span></pre>
长风一剑的主页 长风一剑 | 初学一级 | 园豆:29
提问于:2010-02-23 09:32
< >
分享
最佳答案
0

看这个

 

[二合一]C#读取和导出EXCEL类库(可操作多个SHEET)

可以读取到内容和名字。不需安装

收获园豆:50
woody.wu | 老鸟四级 |园豆:3621 | 2010-02-23 10:39
问题解决了,可代码看不怎么明白。不知道是怎么实现的。
长风一剑 | 园豆:29 (初学一级) | 2010-02-23 12:02
其他回答(4)
1

楼上的无法解决楼主的问题,我也碰到过这个问题,关注!

邢少 | 园豆:10926 (专家六级) | 2010-02-23 11:00
用一楼的DLL解决了这个问题,代码如下 public ArrayList ExcelSheetNameAl(string filepath) { ArrayList al = new ArrayList(); AppLibrary.ReadExcel.Workbook workbook = null; workbook = AppLibrary.ReadExcel.Workbook.getWorkbook(filepath); System.Text.StringBuilder sb = new System.Text.StringBuilder(); foreach (AppLibrary.ReadExcel.Sheet sheet in workbook.Sheets) { al.Add(sheet.Name); } return al; } al[0]就是第一个SHEETNAME
支持(0) 反对(0) 长风一剑 | 园豆:29 (初学一级) | 2010-02-23 11:55
0

不错 标记

寒@鹏 | 园豆:217 (菜鸟二级) | 2011-09-24 18:30
0

标记我也遇到了

普通用户 | 园豆:54 (初学一级) | 2013-01-31 20:06
0

mark

少时不知贵 | 园豆:86 (初学一级) | 2016-01-23 22:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册