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

Asp.net中操作EXCEL文件(C#)

2006-03-07 16:54 375 查看
一、环境设置
1.服务器端必须安装EXCEL
2.所有Excel的程序操作都来源于Excel的对象库Excel9.olb.使用Tlbimp这个工具将Excel9.0的对象库文件Excel9.olb转换成为dll,这样才能做为.Net平台Assembly来使用:
TlbImp Excel9.olb
这样会得到3个文件"Excel.dll"、"Office.dll"、"VBIDE.dll"
只要有了这个Excel.dll,现在我们就能使用Excel的各种操作函数了
3.服务器端的权限设置
服务器端必须要设置的一点是COM组件的操作权限。在命令行键入“DCOMCNFG”,则进入COM组件配置界面,选择Microsoft Excel后点击属性,将三个单选项一律选择自定义,编辑中将Everyone加入所有权限。在“标识”中设置为交互式用户,保存完毕后重新启动服务器。
***如果不设置交互式用户,EXCEL进程如果停留在内存中,你是无法结束进程的
二、操作EXCEL文件
1.在项目中添加引用,用TlbImp会得到3个文件,在项目中全部引用
2.操作EXCEL的时要用到几个对象,Application,Workbook,WorkSheet,Range
操作EXCEL首先要建立一个Application对象,然后再得到Application对象的WorkBooks对象,使用WorkBooks对象打开一个EXCEL文件就得到一个WorkBook对象,由WorkBook对象得到WorkSheet对象,基本上有了WorkSheet对象就可以操作EXCEL了,在下面的例子中就没有用到RANGE:
例程:
Excel.ApplicationClass excelApp=null;
Excel.Workbooks exBooks=null;
Excel._Workbook exBook=null;
Excel._Worksheet exSheet=null;
object mo=System.Reflection.Missing.Value;
try
{
excelApp=new Excel.ApplicationClass();
exBooks=excelApp.Workbooks;
exBook=exBooks.Open("d://sample.xls",mo,mo,mo,mo,mo,mo,mo,mo,mo,mo,mo,mo);
exSheet = (Excel._Worksheet)exBook.Worksheets["Sheet1"];//Sheet1为你工作表的名称,也可以是数字,那就是你工作表的序号
exSheet.Cells[i,j]="***";//通过这种方式向EXCEL表格中写入数据,写入第i行的第j列
}
catch(Exception ex)
{
Response.Write(ex.Message);
Response.End();
}
finally
{
exBook.Save();

exBook.Close(true,mo,mo);
exBooks.Close();
System.Runtime.InteropServices.Marshal.ReleaseComObject(exSheet);
System.Runtime.InteropServices.Marshal.ReleaseComObject(exBook);
System.Runtime.InteropServices.Marshal.ReleaseComObject(exBooks);
exBooks=null;
exBook = null;
exSheet = null;
excelApp.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp);
excelApp = null;
GC.Collect();
}
然后保存,后面的代码全是为了释放资源的,因为此方法操作EXCEL有个问题,就是EXCEL经常会不能正常关闭,我使用上面的方法,有时能够关闭,有时内存中会有一个EXCEL运行,但不会有多个
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: