再次求助Exception from HRESULT: 0x800A03EC的错误原因!!!

ychchhy 2011-09-30 01:18:26
System.Runtime.InteropServices.COMException (0x800A03EC):
Exception from HRESULT: 0x800A03EC
at Microsoft.Office.Interop.Excel.WorkbookClass.Save()
at ProductLineManager.INV.NextSumIOReport.SetExcel4DownLoad()
本地计算机VS调试和IIS都没问题,在服务器中出现该问题!

object missing = Missing.Value;
Application app = null;
Workbook wb = null;
Worksheet ws = null;
//Range r = null;
//
app = new Microsoft.Office.Interop.Excel.Application();
wb = app.Workbooks.Open(MapCopyPath, false, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing);
// app.Visible = true;

//得到WorkSheet对象
ws = (Worksheet)wb.Worksheets.get_Item(1);

for (int j = 1; j <= 6; j++)
{
ws.Cells[1, j] = "";
}
ws.Cells[2, 1] = "厂号";
ws.Cells[2, 2] = "内部部番";
ws.Cells[2, 3] = "品名";
ws.Cells[2, 4] = "供应商部番";
ws.Cells[2, 5] = "仕入先";
ws.Cells[2, 6] = "日期";
System.Data.DataTable ds = new System.Data.DataTable();
ds = getFAC();
int r=0;
if (ds.Rows.Count > 0)
{
r = ds.Rows.Count;
for (int j = 0; j < r; j++)
{
ws.Cells[1, 7 + j] = ds.Rows[j]["FCT_ID"].ToString();
ws.Cells[2, 7 + j] = "未来库存";
}
}
int k = temp - 1;
DateTime Mon;
for (int j = 0; j <= k; j++)
{
Range c = ws.get_Range(ws.Cells[1, 7 + r + j * 4], ws.Cells[1, 10 + r + j * 4]);
c.Merge(false);
Mon = GetWeekM(DateTime.Now.Date.AddDays(7 * t[j]).Year, WeekOfYear(DateTime.Now.Date.AddDays(7 * t[j])));
c.FormulaR1C1 = Mon.Year.ToString().Trim() + "/" + Mon.Month.ToString().Trim() + "/" + Mon.Day.ToString().Trim();
c.HorizontalAlignment=XlHAlign.xlHAlignCenter;
ws.Cells[2, 7 + r + j * 4] = "入库";
ws.Cells[2, 8 + r + j * 4] = "消耗";
ws.Cells[2, 9 + r + j * 4] = "未来库存";
ws.Cells[2, 10 + r + j * 4] = "状态";
}
wb.Save();
using (DAO.ClsDB dao = new DAO.ClsDB())
{
dt = dao.Sql4Select(databind(), null);
string[,] tp = new string[dt.Rows.Count, dt.Columns.Count];
for (int i1 = 0; i1 < dt.Rows.Count; i1++)
{
for (int i2 = 0; i2 < dt.Columns.Count; i2++)
{
tp[i1, i2] = dt.Rows[i1][i2].ToString();
}
}
Range c = ws.get_Range(ws.Cells[3, 1], ws.Cells[3 + dt.Rows.Count - 1, dt.Columns.Count]);
c.FormulaR1C1 = tp;

}
//输出Excel文件并退出
wb.Save();
wb.Close(false,false, missing);
app.Workbooks.Close();
app.Application.Quit();
app.Quit();
ws = null;
wb = null;
app = null;
...全文
1425 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ychchhy 2011-09-30
  • 打赏
  • 举报
回复
这个之前看过了,没帮助。。。
[Quote=引用 9 楼 wangzhi0321 的回复:]
参考下:http://topic.csdn.net/u/20101215/11/1fafc3dd-a0ab-4b64-9e29-d12bfd29bdfd.html
[/Quote]
md5e 2011-09-30
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 ychchhy 的回复:]
不好意思,temp文件夹是指哪里的?
[/Quote]

WINDOWS\Temp
wangzhi0321 2011-09-30
  • 打赏
  • 举报
回复
参考下:http://topic.csdn.net/u/20101215/11/1fafc3dd-a0ab-4b64-9e29-d12bfd29bdfd.html
ychchhy 2011-09-30
  • 打赏
  • 举报
回复
temp文件夹给了读写操作权限了,还是不行

[Quote=引用 7 楼 ychchhy 的回复:]
不好意思,temp文件夹是指哪里的?

引用 6 楼 liuchaolin 的回复:
temp文件夹看是否给了Users读写操作
[/Quote]
ychchhy 2011-09-30
  • 打赏
  • 举报
回复
不好意思,temp文件夹是指哪里的?
[Quote=引用 6 楼 liuchaolin 的回复:]
temp文件夹看是否给了Users读写操作
[/Quote]
md5e 2011-09-30
  • 打赏
  • 举报
回复
temp文件夹看是否给了Users读写操作
ychchhy 2011-09-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 liuchaolin 的回复:]
Microsoft Office Excel (0x800A03EC)
Microsoft Office Excel不能打开或保存任何文件,因为没有足够的内存或硬盘空间.关掉你不需要的工作薄或程序可以使更多内存释放.
从你所保存的硬盘中删除你不再需要的文件来释放更多空间.



可能是你的C盘空间不够吧.
[/Quote]
这个应该不会吧,服务器上C盘空间还有35个G呢,内存一般状态下是1个多G可用
md5e 2011-09-30
  • 打赏
  • 举报
回复
Microsoft Office Excel (0x800A03EC)
Microsoft Office Excel不能打开或保存任何文件,因为没有足够的内存或硬盘空间.关掉你不需要的工作薄或程序可以使更多内存释放.
从你所保存的硬盘中删除你不再需要的文件来释放更多空间.



可能是你的C盘空间不够吧.
ychchhy 2011-09-30
  • 打赏
  • 举报
回复
workbook.save()在什么情况下会出错呢?
ychchhy 2011-09-30
  • 打赏
  • 举报
回复
这些都已经设置过了,没效果!
[Quote=引用 1 楼 return_false 的回复:]
要运行 32 位版本的 ASP.NET 2.0,
1. 单击“开始”,单击“运行”,键入 cmd,然后单击“确定”。
2. 键入以下命令启用 32 位模式:
cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
3. 键入以下命令,安装 ……
[/Quote]
  • 打赏
  • 举报
回复
要运行 32 位版本的 ASP.NET 2.0,
1. 单击“开始”,单击“运行”,键入 cmd,然后单击“确定”。
2. 键入以下命令启用 32 位模式:
cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
3. 键入以下命令,安装 ASP.NET 2.0(32 位)版本并在 IIS 根目录下安装脚本映射:
%SYSTEMROOT%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i
4. 确保在 Internet 信息服务管理器的 Web 服务扩展列表中,将 ASP.NET 版本 2.0.40607(32 位)的状态设置为允许。

62,056

社区成员

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

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

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

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