请教ASP.NET操作EXCEL的问题,第一次来,谢谢大家!
hl421 2007-02-01 02:48:35 目前在做统计的时候,因为统计报表格式较为复杂,便考虑使用导入Excel文件进行打印的方式。实现方式我想大家都知道,就是预先在Excel中把格式画好,作为模板保存在服务器的某个目录;打印的时候读取该模板并将数据写入,另存成新的Excel文件让客户端下载。这样客户端用户想如何操作都行,灵活性很大。
参照前辈的经验,我在组件服务的DCOM配置中将Excel的安全性,加上了ASP.NET、NETWORK SERVICE这2个用户并配置为交互式用户;将程序目录的安全设置中,加入了NETWORK SERVICE用户并设置为完全控制(主要是担心没有写文件的权限)
上面的过程都已经实现了,我遇到的问题如下:在我本机(windows2003 server,iis6)是没有任何问题的,但是其他机器访问时,则出现错误。请教这到底是怎么回事,是权限设置的问题吗?
附代码如下:
private void btnExport_Click(object sender, System.EventArgs e)
{
try
{
Application objExcel = new Excel.ApplicationClass();
//模板文件名
string strTemplateFile = Server.MapPath(Request.ApplicationPath) + "\\Template\\Owner.xlt";
//数据文件名
string strFile = Server.MapPath(Request.ApplicationPath) + "\\Template\\Owner.xls";
objExcel.Visible = false;
objExcel.DisplayAlerts = false;
Workbooks objBooks = objExcel.Workbooks;
object MissingValue = Type.Missing;
objBooks.Open(strTemplateFile , MissingValue , MissingValue , MissingValue , MissingValue
, MissingValue , MissingValue , MissingValue , MissingValue , MissingValue , MissingValue
, MissingValue , MissingValue , MissingValue , MissingValue);
Worksheet objSheet = (Worksheet)objBooks[1].Worksheets[1];
objSheet.Name = "业户";
Range objCells = objSheet.Cells;
//写入数据
this.SetData(objCells);
//保存文件
objSheet.SaveAs(strFile , MissingValue , MissingValue , MissingValue , MissingValue , MissingValue
, MissingValue , MissingValue , MissingValue , MissingValue);
objBooks.Close();
objExcel.Quit();
System.GC.Collect();
//下载文件
Response.Redirect(strFile);
}
catch(Exception ex)
{
Response.Write(ex.Message);
}
}