使用Microsoft.Office.Interop.Excel.Application导出excel时提示“请求的操作需要提升”

apple001203 2018-12-28 04:24:59
在wpf中要把数据导出到excel文件,引用了Microsoft.Office.Interop.Excel的dll

在new Microsoft.Office.Interop.Excel.Application();的时候报异常:检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件失败,原因是出现以下错误: 800702e4 请求的操作需要提升。 (异常来自 HRESULT:0x800702E4)。


private void btnExcel_Click(object sender, RoutedEventArgs e)
{
try
{
string fileName = "";
string saveFileName = "";
System.Windows.Forms.SaveFileDialog saveDialog = new System.Windows.Forms.SaveFileDialog();
saveDialog.DefaultExt = "xlsx";
saveDialog.Filter = "Excel 文件|*.xlsx";
saveDialog.FileName = fileName;
saveDialog.ShowDialog();
saveFileName = saveDialog.FileName;
if (saveFileName.IndexOf(":") < 0) return;

var xlApp = new Microsoft.Office.Interop.Excel.Application();//这一句报错
if (xlApp == null)
{
System.Windows.MessageBox.Show("无法创建Excel对象,您可能未安装Excel");
return;
}
Microsoft.Office.Interop.Excel.Workbooks workbooks = xlApp.Workbooks;
Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1]; //取得sheet1
//......
}
catch()
{
}
}
...全文
758 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
并不会影响 Word、Excel 等等直接打开。但是会影响后台编程接口打开。
  • 打赏
  • 举报
回复
引用 3 楼 apple001203 的回复:
管理员身份运行后又报下面的错误: 无法将类型为“System.__ComObject”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Excel.Application”。此操作失败的原因是对 IID 为“{000208D5-0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 不支持此接口 (异常来自 HRESULT:0x80004002 (E_NOINTERFACE))。
这有可能是被 WPS 等流氓软件把 Office 的系统注册表项给覆盖了。往往遇到这类事件,甚至重装 Office 都不行,甚至得去用 WPS 等的卸载软件去卸载、你的 Office 才能正常用。
gd6321374 2018-12-29
  • 打赏
  • 举报
回复

可以使用开源项目 NPOI
方便
apple001203 2018-12-28
  • 打赏
  • 举报
回复
管理员身份运行后又报下面的错误: 无法将类型为“System.__ComObject”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Excel.Application”。此操作失败的原因是对 IID 为“{000208D5-0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 不支持此接口 (异常来自 HRESULT:0x80004002 (E_NOINTERFACE))。
  • 打赏
  • 举报
回复
引用 1 楼 apple001203 的回复:
编辑器要用管理员身份运行
是这样的。
apple001203 2018-12-28
  • 打赏
  • 举报
回复
编辑器要用管理员身份运行

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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