ASP.NET Office PIA 编程心得
最近项目中需要在ASP.NET中操作EXCEL, 编码没有什么问题,环境的设置遇到了些问题。经过几天的学习,终于搞定了。
总结如下:
环境设置:
1,服务器一定要装excel。
我开始也幻想用dll发布,有些论坛说可以。经过几天努力,证实那些全部是YY.
2,DCOM权限设置。
网上很多很详细的资料,还带截屏。
3,天知道是什么。
我们在一个环境中很清楚设置成功, 换了台机器,怎么设置都不成功,excel.exe出错。
编程注意事项;
1, 务必要释放COM对象。因为COM对象是非托管的代码。
2, 操作完Excel要先SAVE在关闭。
心得:
最好不用COM操作Excel, MS 不推荐,并且容易出错。如果只是读写EXCEL,直接用OleDB方式。
致命问题:
Excel出现交互式询问,ASP.NET的这个请求就会死在那里等待。
总结如下:
环境设置:
1,服务器一定要装excel。
我开始也幻想用dll发布,有些论坛说可以。经过几天努力,证实那些全部是YY.
2,DCOM权限设置。
网上很多很详细的资料,还带截屏。
3,天知道是什么。
我们在一个环境中很清楚设置成功, 换了台机器,怎么设置都不成功,excel.exe出错。
编程注意事项;
1, 务必要释放COM对象。因为COM对象是非托管的代码。
try
{
if (o != null)
Marshal.ReleaseComObject(o);
}
finally
{
o = null;
}
{
if (o != null)
Marshal.ReleaseComObject(o);
}
finally
{
o = null;
}
2, 操作完Excel要先SAVE在关闭。
if (wb != null)
{
wb.Saved = true;
wb.Close(false, Type.Missing, Type.Missing);
}
{
wb.Saved = true;
wb.Close(false, Type.Missing, Type.Missing);
}
心得:
最好不用COM操作Excel, MS 不推荐,并且容易出错。如果只是读写EXCEL,直接用OleDB方式。
致命问题:
Excel出现交互式询问,ASP.NET的这个请求就会死在那里等待。