WEB方式下,EXCEL的生成问题!
FAQ里有一篇文章 《生成Excel文件》
我正好开发WEB APPLICATION,需要在在服务器端生成EXCEL文件,然后在客户端打开
原代码为C#如下:
[解决思路:因此种调用方式实际为调用服务端的Excel,故我们生成xls文件放置于服务器上,然后在客户端予以打开。
相信国外的www.dbnetgrid.com的dbgrid控件生成Excel和Word文件也是采用此种方式。]
Excel.Application oExcel;
Excel.Workbook oBook;
Object oMissing = System.Reflection.Missing.Value;
oExcel = new Excel.Application();
oBook = oExcel.Workbooks.Add(oMissing);
for (int i=1;i<=4;i++)
{
oExcel.Cells[i,1]=i.ToString();
oExcel.Cells[i,2]="'bbb2";
oExcel.Cells[i,3]="'ccc3";
oExcel.Cells[i,4]="'aaa4";
}
oBook.Saved = true;
oExcel.UserControl = false;
string mm=Server.MapPath(".")+"\\aa.xls";//服务器保存地址
oExcel.ActiveWorkbook.SaveCopyAs (mm);
oExcel.Quit();
Response.Redirect ("aa.xls");
我将代码改为vb:
Dim oExcel As New Excel.Application()
Dim oBook As Excel.Workbook
Dim oMissing As Object = System.Reflection.Missing.Value
oBook = oExcel.Workbooks.Add(oMissing)
Dim i As Integer = 1
While i <= 4
oExcel.Cells(i, 1) = i.ToString
oExcel.Cells(i, 2) = "'bbb2"
oExcel.Cells(i, 3) = "'ccc3"
oExcel.Cells(i, 4) = "'aaa4"
i = i + 1
End While
oBook.Saved = True
oExcel.UserControl = False
oExcel.ActiveWorkbook.SaveCopyAs(Server.MapPath(".") + "\aa.xls")
oExcel.Quit()
运行时报如下错误:
拒绝访问。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.UnauthorizedAccessException: 拒绝访问。
未授权此 ASP.NET 进程访问所请求的资源。出于安全原因,默认的 ASP.NET 进程标识为“{machinename}\ASPNET”,它只具有有限的特权。请考虑授予该 ASP.NET 进程标识访问此资源的权限。
若要授予 ASP.NET 对文件的写访问权,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”以添加“{machinename}\ASPNET”用户。突出显示此 ASP.NET 帐户,在“允许”列中选中“写”框。
源错误:
行 42:
行 43:
行 44: Dim oExcel As New Excel.Application()
行 45: Dim oBook As Excel.Workbook
行 46: Dim oMissing As Object = System.Reflection.Missing.Value
源文件: C:\Inetpub\wwwroot\Gzjj\_Excel.aspx.vb 行: 44
我试着把IIS目录权限开放了 写入 ,还是不行。
请教高手如何解决!