C#获取Excel工作薄中的第一个工作表名称

Published on 2010年2月23日 by admin in

0

随着Office 2007使用的日渐增长,我们升级了OleDB数据库的搜索引擎,更改为:

string mystring = "Provider = Microsoft.ACE.OLEDB.12.0 ; Data Source = '" + FilePath + "';Extended Properties='Excel 12.0;HDR=YES;IMEX=1'";           
           
升级后发现原来获取工作表名称的语句:

System.Data.DataTable schemaTable = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
 string tableName = schemaTable.Rows[0]["TABLE_NAME"].ToString().Trim();


无法正确地获取到文件中默认的工作表顺序了,新的GetOleDbSchemaTable排序了。假设一个Excel,其中有三个工作表,第一个为“sheet2”,第二个为“sheet1”,第三个为“sheet3”。我只想读取第一个工作表及“sheet2”这张表。但是实际的获取结果却是"sheet1"->“sheet2"->"sheet3"。
同样的经过一轮的Google/Baidu后未找到很多的解决方法,最后只好通过引用com组件:Microsoft.Office.Interop.Excel.dll来实现。代码片断如下:

//创建一个Application对象
app = new Excel.ApplicationClass();

//打开一个WorkBook
workBook = app.Workbooks.Open(fileName,
                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);

//得到WorkSheet对象
workSheet = (Excel.Worksheet)workBook.Sheets.get_Item(1);
 ((Excel._Worksheet)workSheet).Activate();

//获得工作表名称
string sheetName = workSheet.Name;

 

ASP.NET MVC 2 RC中应用Areas

Published on 2010年1月29日 by admin in ASP.NET MVC

0

ASP.NET MVC 目前已经更新到了RC版,相对而言版本和功能上都较为稳定,如果有兴趣的童鞋可以下载了。在一些相关的介绍中都有提到ASP.NET MVC 2支持一个叫“区域(areas)”的新特性,但是都没有对其有一个比较清晰的应用,下面我将简单地展示一下Areas的用法。

“区域(areas)”允许你轻松地将MVC应用的功能进行分割和组合。它提供了一个将控制器和视图进行分组的方式,允许你把一个大应用的各个子部分相对独立地进行构建。每个区域可以一个单独的ASP.NET MVC项目的形式来实现,并且这些项目可进而为主应用所引用。

环境:Visual Studio 2008(SP1),ASP.NET MVC 2 RC [Downloads: 28]

步骤:[...]

0

注:此篇并非解决安装非英语版本的 Microsoft Visual Studio 2008 Service Pack 1 后,某些本地化的“智能感知”文本可能会还原为英语

一时兴起安装了英文版VS2008(SP1),使用中因为智能感知都是英文,对于我这个英文并不太好的人来说,还是有些耽误工作,呵呵。上网查找重新安装.NET框架 3.5(SP1)的中文语言包也解决不了问题。后来机缘巧合发现通过替换.NET框架相关目录中的一些文件就能实现智能感知提示中文了,哈哈~[...]