2015-01-30 3 views
1

Я делаю экспорт в VB. Я смог экспортировать значения datagridview в excel, но когда я открываю файл, он показывает эту ошибку.Экспортированный файл excel из datagridview показывает ошибку при открытии VB

Error

Я использую следующий код, чтобы экспортировать значения 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. У экспортируемого файла нет проблем, когда я нажимаю «Да». Он показывает правильные значения. Я просто хочу, чтобы эта ошибка перестала отображаться при открытии файла.

Может ли кто-нибудь помочь мне исправить это решение? Я буду искренне благодарен всем, кто может вести меня. Благодарю. :)

+1

попробуйте сохранить в формате .xls'. Может возникнуть проблема с версией excel на вашем компьютере. –

+1

Я попытался сохранить в .xls, но он все еще показывает ошибку. Проблема в том, что формат так же, как вы сказали. Мой Excel использует .xlsx, поэтому его нужно сохранить в .xlsx. Это было отсортировано. Благодарю. :) – Nek

ответ

0

Я понял. Спасибо ахил кумар.

My Excel использует .xlsx расширение, так что я изменил

dlgSave.DefaultExt = "xls" 

в

dlgSave.DefaultExt = "xlsx"

и удалить функцию Replace, чтобы сделать его выглядеть следующим образом.

Dim sFileName As String = dlgSave.FileName 

Это прекрасно работает. Эта проблема была отсортирована. :)

Смежные вопросы