请教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);
}
}

...全文
178 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hl421 2007-02-01
  • 打赏
  • 举报
回复
还请大家不吝赐教!会是目录权限的问题吗?
hl421 2007-02-01
  • 打赏
  • 举报
回复
dcom配置中添加everyone,将asp.net与network service删除了,本地就好了,但是其他机器依然不行,“无法访问”。
hl421 2007-02-01
  • 打赏
  • 举报
回复
回 greennetboy(我的老婆叫静静):

web.config中加入如下配置后,居然不让创建excel对象了,
Application objExcel = new Excel.ApplicationClass()就报错,“拒绝访问”

<identity impersonate="true" userName="administrator" password=""/>
xylys521 2007-02-01
  • 打赏
  • 举报
回复
可能的问题:
1、dcom配置中用户权限:添加:everyone.
2、可能是服务器进程中的Excel没有完全释放。
3、可能是Excel的版本问题!
greennetboy 2007-02-01
  • 打赏
  • 举报
回复
web。config中设置模拟为true,模拟本地帐户运行

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧