我想将我的datagridview保存到excel中但我发现某些web中的代码没有使用特定文件夹,我想使用保存对话框将excel工作簿保存到特定文件夹。
这是我的代码,但不保存特定文件夹。
Dim xlApp As Excel.Application
Dim xlWorkBook As Excel.Workbook
Dim xlWorkSheet As Excel.Worksheet
Dim misValue As Object = System.Reflection.Missing.Value
Dim i As Int16, j As Int16
'xlApp = New Excel.ApplicationClass
xlApp = New Excel.Application()
xlWorkBook = xlApp.Workbooks.Add(misValue)
xlWorkSheet = xlWorkBook.Sheets("sheet1")
For c As Integer = 0 To dgv1.Columns.Count - 1
xlWorkSheet.Cells(1, c + 1).Value = dgv1.Columns(c).HeaderText
Next
For i = 0 To dgv1.RowCount - 2
For j = 0 To dgv1.ColumnCount - 1
xlWorkSheet.Cells(i + 2, j + 1) = dgv1(j, i).Value.ToString()
Next
Next
xlWorkBook.SaveAs("d:\kehadiran.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue,
Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue)
xlWorkBook.Close(True, misValue, misValue)
xlApp.Quit()
releaseObject(xlWorkSheet)
releaseObject(xlWorkBook)
releaseObject(xlApp)
MessageBox.Show("Your File is successfully saved d:\kehadiran.xls")
答案 0 :(得分:0)
如果您想让用户选择保存文件的位置,请使用保存文件对话框。现在,您将硬编码路径传递给Workbook.SaveAs()。使用SaveFileDialog获取路径,并将“d:\ kehadiran.xls”替换为“savePath”:
Dim xlApp As Excel.Application
Dim xlWorkBook As Excel.Workbook
Dim xlWorkSheet As Excel.Worksheet
Dim misValue As Object = System.Reflection.Missing.Value
Dim i As Int16, j As Int16
'xlApp = New Excel.ApplicationClass
xlApp = New Excel.Application()
xlWorkBook = xlApp.Workbooks.Add(misValue)
xlWorkSheet = xlWorkBook.Sheets("sheet1")
For c As Integer = 0 To dgv1.Columns.Count - 1
xlWorkSheet.Cells(1, c + 1).Value = dgv1.Columns(c).HeaderText
Next
For i = 0 To dgv1.RowCount - 2
For j = 0 To dgv1.ColumnCount - 1
xlWorkSheet.Cells(i + 2, j + 1) = dgv1(j, i).Value.ToString()
Next
Next
Dim savePath As String = Nothing
Using sd As New SaveFileDialog
With sd
.RestoreDirectory = True
.Filter = "Excel XLS Files(*.xls)|*.xls|Excel Macro Embedded Files(*.xlsm)|*.xlsm|Excel XLSX Files(*.xlsx)|*.xlsx"
.FilterIndex = 3
If .ShowDialog = DialogResult.OK Then
savePath = .FileName
End If
End With
End Using
If savePath IsNot Nothing AndAlso savePath.Trim <> "" Then
xlWorkBook.SaveAs(savePath, Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue)
End If
xlWorkBook.Close(True, misValue, misValue)
xlApp.Quit()
releaseObject(xlWorkSheet)
releaseObject(xlWorkBook)
releaseObject(xlApp)
MessageBox.Show("Your File is successfully saved " & savePath)