C# 从数据库导出数据到Excel时返回十六进制错误0x800AC472
C# 使用 Interop 导出Excel单列数据时报错 0x800AC472
我正在从数据库读取List集合,仅需要将其中1列数据导出到Excel工作表中,但try catch捕获到十六进制错误0x800AC472,相关代码如下:
try { var path = @"C:\Users\Desktop\Data.xlsx"; var listOfUsers = _context.Users.ToList(); int row = 2; Microsoft.Office.Interop.Excel.Application excel; Microsoft.Office.Interop.Excel.Workbook excelworkBook; Microsoft.Office.Interop.Excel.Worksheet excelSheet; Microsoft.Office.Interop.Excel.Range excelCellrange; excel = new Microsoft.Office.Interop.Excel.Application(); excel.Visible = false; excel.Interactive = false; excel.DisplayAlerts = false; excelworkBook = excel.Workbooks.Add(Type.Missing); excelSheet = (Microsoft.Office.Interop.Excel.Worksheet)excelworkBook.ActiveSheet; excelSheet.Name = "Test work sheet"; excelCellrange = excelSheet.Range[excelSheet.Cells[1, 1], excelSheet.Cells[listOfUsers.Count, 1]]; excelCellrange.EntireColumn.AutoFit(); excelSheet.Cells[1, 1] = "Phone Number"; foreach (var user in listOfUsers) { excelSheet.Cells[row, 1] = user.PhoneNumber; row++; } excelSheet.SaveAs(path); return Ok(); } catch (Exception ex) { return BadRequest(ex.Message); }
问题更新
最终排查发现问题根源是MS Office许可证已过期,修复许可证后所有功能运行正常。
内容的提问来源于stack exchange,提问作者nour
相关产品推荐
相关产品推荐

