从datagridview中导出的excel文件在打开VB时显示错误

我在VB中做出口。 我能够将datagridview的值导出为ex​​cel,但是当我打开文件时,会显示此错误。

错误

我正在使用下面的代码导出datagridview的值。

Dim xlApp As Microsoft.Office.Interop.Excel.Application Dim xlWorkBook As Microsoft.Office.Interop.Excel.Workbook Dim xlWorkSheet As Microsoft.Office.Interop.Excel.Worksheet Dim misValue As Object = System.Reflection.Missing.Value Dim sPath As String = String.Empty Dim dlgSave As New SaveFileDialog Dim i As Integer Dim j As Integer dlgSave.DefaultExt = "xls" dlgSave.Filter = "Microsoft Excel|*.xls" If dlgSave.ShowDialog = System.Windows.Forms.DialogResult.OK Then xlApp = New Microsoft.Office.Interop.Excel.Application xlWorkBook = xlApp.Workbooks.Add(misValue) xlWorkSheet = xlWorkBook.Sheets("sheet1") For i = 0 To dgvFile.RowCount - 1 For j = 0 To dgvFile.ColumnCount - 1 For k As Integer = 1 To dgvFile.Columns.Count xlWorkSheet.Cells(1, k) = dgvFile.Columns(k - 1).HeaderText xlWorkSheet.Cells(i + 2, j + 1) = dgvFile(j, i).Value.ToString() Next Next Next Dim sFileName As String = Replace(dlgSave.FileName, ".xlsx", ".xlx") xlWorkSheet.SaveAs(sFilename) xlWorkBook.Close() xlApp.Quit() releaseObject(xlApp) releaseObject(xlWorkBook) releaseObject(xlWorkSheet) Dim res As MsgBoxResult res = MsgBox("Process completed, Would you like to open file?", MsgBoxStyle.YesNo) If (res = MsgBoxResult.Yes) Then Process.Start(sFileName) End If End If 

注意这段代码工作正常。 它输出的值没有任何问题。 它只是显示错误,当我打开Excel文件。 当我点击“是”时,导出的文件没有问题。 它显示了正确的值 。 我只想在打开文件时停止显示此错误。

任何人都可以帮助我解决这个问题吗 任何能领导我的人,我都会感激不尽。 谢谢。 🙂

我想到了。 感谢akhil kumar。

我的Excel使用.xlsx扩展名,所以我改变了

 dlgSave.DefaultExt = "xls" 

dlgSave.DefaultExt = "xlsx"

并删除了replacefunction,使其看起来像这样。

 Dim sFileName As String = dlgSave.FileName 

这完美的作品。 这个问题已经sorting。 🙂