您的位置:首页 > 编程语言 > VB

vb/vb.net/C#调用Excel

2006-12-11 15:58 363 查看
本人就最近潜心研究的三种语言调用Excel文件呈现给大家.
微软的Excel在某一些小软件上确实比较有用处,比如导出数据做报表
但编程语言要与应该程序连接,必须涉及到com组件,就offiice2000/office xp/office 2003给大家介绍这几种com
在VB中调Excel2000/xp有一个*.ole文件,2000是9.0.其他类推,可到了2003就没了这个嵌入文件,没有研究在VB中调用Excel 2003,在.net下面调用2000/xp依然是那个文件,可2003就是excel.exe.且类库为1.5.以此类推.其实在com下面就有命名空间,那个时候应该叫库吧.你引用文件时候去看就清楚.这些东西我不再多说.进入正题:

VB
怎么引用com组件不在我介绍之类,附一张图


仔细的朋友应该看出我前面说的吧
Dim myexcel As New Excel.Application
Dim myworkbook As Excel.Workbook
Dim myworksheet As Excel.Worksheet
Set myworkbook = myexcel.Workbooks.Open("c:/test.xls")
myexcel.Visible = True
这里面有几个问题提醒一个,第一行声明新的应该用程序,实例化吧.如果学C#之后这个应该很清楚
第二行声明一个变量,应该叫引用变量,在这里特别得说.因为引用有两个类Workbook/Workbook
Worksheet/Worksheets这四个类两两相对,多一个s就代表是组合吧.一般不用到.但四行首先用到set
这应该叫做赋引用值吧.以后.net我是没这见到.也许还没碰到.为什么又用到Workbooks这个属性
其实就只打这个集合中的某一个Workbook.为什么介绍这些.当然是为了自己能理解.

VB.net
下面应该是VB.net啦.这里首明本人对c++/ delphi/Java倒不熟.简单就是只看语法.没用过.所以只能用这种比较漏也的语言.不要嘲笑.语言是互通的我确实.进入主题
进入.net世界,还是引用,不过我倒不准用imports之类的引用命名空间.我还是用全名
Dim excelapp As New Microsoft.Office.Interop.Excel.Application
Dim excelworkbook As Microsoft.Office.Interop.Excel.Workbook
Dim excelworksheet As Microsoft.Office.Interop.Excel.Worksheet
excelworkbook = excelapp.Workbooks.Open("c:/test.xls")
excelapp.Visible = True
应该来说是多大的区别.有区别我前面也声明过.

C#
这个是我从网上半看半学来的,至少我目前还不明白.首先这里面声明的全是接口,而不是类
Microsoft.Office.Interop.Excel.Application myExcel = new Microsoft.Office.Interop.Excel.ApplicationClass();
Microsoft.Office.Interop.Excel.Workbook myWorkBook;
Object missing = System.Reflection.Missing.Value;
myWorkBook =myExcel.Workbooks.Open (@"c:/test.xls",missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing );
myExcel.Visible = true;

看到区别不open这个方法.三种语言都叫方法吧.因为不返回值..嘿嘿.所以没叫涵数.555555555555
其实open方法后面就是这么多参数.vb/vb.net可以省掉有些参数.原因我没参透.应该是跟值有关系,本人基础不太好.而C#后面不能省参数,object的参数值为Misssing.Value
我不枉下结论.而字符串前面加了@,这个也没弄明白.希望网友能给出解释.

至于怎么填充数据,估计这段时间不会出来.我会继续奉出.net打印设置.报表制做(不指水晶)
本人觉得用水晶功能大.但总是没自己写的好,到位
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: