显示错误“exception来自HRESULT:0x800A03EC”当从C#导出到Excel 2013时,

从C#导出到Excel 2013时,显示以下错误

来自HRESULT的exception:0x800A03EC

下面的代码正在使用。 将dataTable中的数据从c#导出到Excel

Microsoft.Office.Interop.Excel.Worksheet objWorkSheet1 = null; Microsoft.Office.Interop.Excel.Application objExcel = new Microsoft.Office.Interop.Excel.Application { Visible = false, DisplayAlerts = false, ScreenUpdating = false, DisplayClipboardWindow = false, }; Microsoft.Office.Interop.Excel.Workbooks objWorkbooks = objExcel.Workbooks; Microsoft.Office.Interop.Excel.Workbook objWorkbook = objWorkbooks.Add(Missing.Value); Microsoft.Office.Interop.Excel.Sheets objSheets = objWorkbook.Worksheets; Microsoft.Office.Interop.Excel.Range objCells; Microsoft.Office.Interop.Excel.Range myCell; var iCurrentRow = 10; var dt = ds; int columnsCount = dt.Columns.Count; objWorkSheet1 = (Microsoft.Office.Interop.Excel.Worksheet)(objSheets[1]); objCells = objWorkSheet1.Cells; objWorkSheet1.Cells[2, columnsCount - 1] = ReportCaption; objWorkSheet1.Cells[2, columnsCount - 1].Font.Size = 15; objWorkSheet1.Range[objWorkSheet1.Cells[5, 2], objWorkSheet1.Cells[5, columnsCount - 1]].Merge(); objWorkSheet1.Cells[5, 2] = "Printed By: " + Common.Utilities.UserName; ; objWorkSheet1.Range[objWorkSheet1.Cells[6, 2], objWorkSheet1.Cells[6, columnsCount - 1]].Merge(); objWorkSheet1.Cells[6, 2] = "Date: " + DateTime.Now; objWorkSheet1.Range[objWorkSheet1.Cells[2, 2], objWorkSheet1.Cells[4, columnsCount - 1]].Merge(); if (name != null) if (name.Length > 0) objWorkSheet1.Cells[8, 2] = "NAME: " + name; objWorkSheet1.get_Range((Microsoft.Office.Interop.Excel.Range)objWorkSheet1.Cells[2, 2], (Microsoft.Office.Interop.Excel.Range)objWorkSheet1.Cells[4, columnsCount - 1]).Cells.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter; objWorkSheet1.get_Range((Microsoft.Office.Interop.Excel.Range)objWorkSheet1.Cells[2, 2], (Microsoft.Office.Interop.Excel.Range)objWorkSheet1.Cells[4, columnsCount - 1]).Cells.VerticalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter; for (var h = 0; h < dt.Columns.Count; h++) { myCell = (Microsoft.Office.Interop.Excel.Range)objCells[iCurrentRow, h + 1]; myCell.Value2 = dt.Columns[h].ColumnName; } iCurrentRow++; for (var r = 0; r < dt.Rows.Count; r++) { for (var c = 0; c < dt.Columns.Count; c++) { if (dt.Columns[c].DataType.Name == "String" || dt.Columns[c].DataType.Name == "DateTime") { myCell = (Microsoft.Office.Interop.Excel.Range)objCells[r + iCurrentRow, c + 1]; myCell.Value2 = "'" + dt.Rows[r][c].ToString().Trim(); } else { myCell = (Mirosoft.Office.Interop.Excel.Range)objCells[r + iCurrentRow, c + 1]; myCell.Value2 = dt.Rows[r][c]; } } } objWorkSheet1.Cells.EntireRow.AutoFit(); objWorkSheet1.Cells.EntireColumn.AutoFit(); objWorkbook.SaveAs(savingFileName, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); objWorkbook.Close(Missing.Value, Missing.Value, Missing.Value); objExcel.Quit(); 

以下行显示上述错误

  Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal‌​, Missing.Value, Missing.Value, true, true, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusiv‌​e, false,false, Missing.Value, Missing.Value, Missing.Value);