HRESULT:Worksheet.range上的0x800A03EC

Can*_*non 22 c# vsto excel-interop

我在Worksheet.range方法上获得了HRESULT:0x800A03EC.行数超过70K.Office 2007.

码:

Microsoft.Office.Interop.Excel.Range neededRange
    = currentWS.Range[cell.Cells[1, 1], cell.Cells[nRowCount, nColumnCount]];
Run Code Online (Sandbox Code Playgroud)

这里我的行数超过65530.打破这个功能.我观察到它只在行数超过65530时才会中断.

Edd*_*ddy 25

如果您使用向后兼容工作表(.xls)而不是.xlsx,则会出现此问题

要允许在Office 2007版本中打开工作表,它不能包含超过65k行.您可以使用ctrl + arrowdown检查工作表中的行数,直到您触及底部.如果您尝试获得大于该行数的范围,则会产生错误

  • 并非总是如此,我在使用.xlsx表时遇到此问题. (10认同)

Joh*_*ick 19

我们收到了相同的.例外是

Stacktrace:at Microsoft.Office.Interop.Excel._Workbook.SaveAs(Object Filename,Object FileFormat,Object Password,Object WriteResPassword,Object ReadOnlyRecommended,Object CreateBackup,XlSaveAsAccessMode AccessMode,Object ConflictResolution,Object AddToMru,Object TextCodepage,Object Text VisualLayout,Object本地)`

内在的例外

来自HRESULT的异常:0x800A03EC 2012-11-01 10:37:59`

我们能够通过这篇文章中的信息解决问题,为方便起见,我在这里引用了这些信息......

  1. 以管理员身份登录服务器.
  2. 转到"开始" - >"运行"并输入"taskmgr"
  3. 转到任务管理器中的进程选项卡,然后选中"显示所有用户的进程"
  4. 如果列表中有任何"Excel.exe"条目,请右键单击该条目并选择"结束进程"
  5. 关闭任务管理器.
  6. 转到"开始" - >"运行"并输入"services.msc"
  7. 如果Excel正在运行,则停止服务自动化.
  8. 转到"开始" - >"运行"并输入"dcomcnfg"
  9. 这将打开组件服务窗口,展开"Console Root" - >"Computers" - >"DCOM Config"
  10. 在组件列表中找到"Microsoft Excel Application".
  11. 右键单击该条目并选择"属性"
  12. 转到属性对话框中的"标识"选项卡.
  13. 选择"交互式用户".
  14. 单击"确定"按钮.
  15. 切换到服务控制台
  16. 启动Excel自动化服务
  17. 再次测试你的申请.

  • 回覆.#7:要查找的服务名称是什么? (3认同)

小智 14

我遇到了这个问题.

发现在我的代码中的某个地方我要求它从0开始计算(就像你在C#代码中那样).

原来Excel计数从1开始.

  • 有同样的问题,幸运的是我看到了你的评论. (2认同)

Hug*_*h W 12

看看上面的各种回答,并借鉴我自己最近的经验(我得到了这个错误代码做了一些完全不相关的事情 - 设置Application.Calculation)我得出结论,相同的错误代码用于表示多个不相关的问题.所以@Garreh你可能应该问一个新问题(不是任何人都可以根据错误代码单独提供帮助).我已经看到了使用C#的Word interop同样的事情,其中HRESULT几乎所有类型的错误似乎都使用了它.我从未在代码的含义上找到任何令人满意的Microsoft文档.


小智 5

如果您要保存的分区没有空间,也可能会导致此问题.

我检查了我的高清,并发现它是最大的.将一些不需要的文件移动到另一个分区解决了我的问题.