[转帖]如何在C#中调用Excel_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3010 | 回复: 0   主题: [转帖]如何在C#中调用Excel        下一篇 
lijia.peng
注册用户
等级:上尉
经验:753
发帖:66
精华:0
注册:2013-11-5
状态:离线
发送短消息息给lijia.peng 加好友    发送短消息息给lijia.peng 发消息
发表于: IP:您无权察看 2013-11-11 12:49:00 | [全部帖] [楼主帖] 楼主

1.调用Excel的COM组件。
在项目中打开AddReference对话框,选择COM栏,之后在COM列表中找到"Microsoft
Excel11.0ObjectLibrary"(Office2003),然后将其加入到项目的References中即可。

VisualC#.NET会自动产生相应的.NET组件文件,以后即可正常使用。


2.打开Excel表格

Excel.Applicationexcel=newExcel.Application();//引用Excel对象
Excel.Workbookbook=excel.Application.Workbooks.Add(Missing.Value);//引用


Excel工作簿

excel.Visible=bVisible;//使Excel可视


有时调用excel.Application.Workbooks.Add(Missing.Value)会遇到如下错误:

Exception:
Oldformatorinvalidtypelibrary.(ExceptionfromHRESULT:0x80028018
(TYPE_E_INVDATAREAD))


这是Excel自身的一个bug,当本地系统环境被设置成非英文的,而Excel是英文的时候,
就会出现,需要临时设定英文环境,代码如下:

System.Globalization.CultureInfoCurrentCI=
System.Threading.Thread.CurrentThread.CurrentCulture;
System.Threading.Thread.CurrentThread.CurrentCulture=new
System.Globalization.CultureInfo("en-US");


3.往Excel表格中插入数据

Excel.Worksheetsheet=(Excel.Worksheet)book.Worksheets["Sheet1"];//选中


当前新建Sheet(一般为Sheet1)
有两种插入方法
a.逐格插入数据

sheet.Cells[iRow,iCol]=value;//左上角第一格的坐标是[1,1]


b.按块插入数据

object[,]objVal=newobject[Height,Length];
//设置数据块
Excel.Rangerange=sheet.get_Range(sheet.Cells[iRow,iCol],sheet.Cells[iRow
+Height,iCol+Length])
range.Value2=objVal;


4.清理内存和恢复环境

System.Runtime.InteropServices.Marshal.ReleaseComObject(range);
System.Runtime.InteropServices.Marshal.ReleaseComObject(sheet);
System.Runtime.InteropServices.Marshal.ReleaseComObject(book);
while(System.Runtime.InteropServices.Marshal.ReleaseComObject(excel)>0);
range=null;
sheet=null;
book=null;
excel=null;
GC.Collect();
System.Threading.Thread.CurrentThread.CurrentCulture=CurrentCI;




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论