Экспорт из DataGridView в MS Excel 2003 - Visual Basic .NET
Формулировка задачи:
Вечер добрый. В общем нужно экспортировать таблицу DataGridView в MS Excel 2003. На форуме нашел всего одну тему посвященную соохранению в эксель, вот она Экспорт данных в Excel из DataGridView , судя по описанию она мне подходит, но не получается. Написано, что нужно подключить ссылку на Microsoft.Office.Interop.Excel. У меня studio 2010, ничего похожего не нашел. Прошу помочь с подключением этого кода или если у кого есть готовый рабочий код поделитесь пожалуйста
кстатит, вот тот код, выкладывал
DM_AND
Ссылку на Microsoft.Office.Interop.Excel
Листинг программы
- Private Sub Button2_Click(ByVal sender As System.Object, _
- ByVal e As System.EventArgs) Handles Button2.Click
- 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 Integer
- Dim j As Integer
- xlApp = New Excel.ApplicationClass
- xlWorkBook = xlApp.Workbooks.Add(misValue)
- xlWorkSheet = xlWorkBook.Sheets("sheet1")
- For i = 0 To DataGridView1.RowCount - 2
- For j = 0 To DataGridView1.ColumnCount - 1
- xlWorkSheet.Cells(i + 1, j + 1) = _
- DataGridView1(j, i).Value.ToString()
- Next
- Next
- xlWorkSheet.SaveAs("C:\DM.xls")
- xlWorkBook.Close()
- xlApp.Quit()
- releaseObject(xlApp)
- releaseObject(xlWorkBook)
- releaseObject(xlWorkSheet)
- MsgBox("Ваш файл сохранен в C:\DM.xls")
- End Sub
Решение задачи: «Экспорт из DataGridView в MS Excel 2003»
textual
Листинг программы
- Public Class Form1
- Private Declare Function ShellEx Lib "shell32.dll" Alias "ShellExecuteA" ( _
- ByVal hWnd As Integer, ByVal lpOperation As String, _
- ByVal lpFile As String, ByVal lpParameters As String, _
- ByVal lpDirectory As String, ByVal nShowCmd As Integer) As Integer
- Private Sub exportExcel(ByVal grdView As DataGridView, ByVal fileName As String, _
- ByVal fileExtension As String, ByVal filePath As String)
- ' Choose the path, name, and extension for the Excel file
- Dim myFile As String = filePath & "\" & fileName & fileExtension
- ' Open the file and write the headers
- Dim fs As New IO.StreamWriter(myFile, False)
- fs.WriteLine("<?xml version=""1.0""?>")
- fs.WriteLine("<?mso-application progid=""Excel.Sheet""?>")
- fs.WriteLine("<ss:Workbook xmlns:ss=""urn:schemas-microsoft-com:office:spreadsheet"">")
- ' Create the styles for the worksheet
- fs.WriteLine(" <ss:Styles>")
- ' Style for the column headers
- fs.WriteLine(" <ss:Style ss:ID=""1"">")
- fs.WriteLine(" <ss:Font ss:Bold=""1""/>")
- fs.WriteLine(" <ss:Alignment ss:Horizontal=""Center"" ss:Vertical=""Center"" " & _
- "ss:WrapText=""1""/>")
- fs.WriteLine(" <ss:Interior ss:Color=""#C0C0C0"" ss:Pattern=""Solid""/>")
- fs.WriteLine(" </ss:Style>")
- ' Style for the column information
- fs.WriteLine(" <ss:Style ss:ID=""2"">")
- fs.WriteLine(" <ss:Alignment ss:Vertical=""Center"" ss:WrapText=""1""/>")
- fs.WriteLine(" </ss:Style>")
- fs.WriteLine(" </ss:Styles>")
- ' Write the worksheet contents
- fs.WriteLine("<ss:Worksheet ss:Name=""Sheet1"">")
- fs.WriteLine(" <ss:Table>")
- For i As Integer = 0 To grdView.Columns.Count - 1
- fs.WriteLine(String.Format(" <ss:Column ss:Width=""{0}""/>", _
- grdView.Columns.Item(i).Width))
- Next
- fs.WriteLine(" <ss:Row>")
- For i As Integer = 0 To grdView.Columns.Count - 1
- fs.WriteLine(String.Format(" <ss:Cell ss:StyleID=""1"">" & _
- "<ss:Data ss:Type=""String"">{0}</ss:Data></ss:Cell>", _
- grdView.Columns.Item(i).HeaderText))
- Next
- fs.WriteLine(" </ss:Row>")
- ' Check for an empty row at the end due to Adding allowed on the DataGridView
- Dim subtractBy As Integer, cellText As String
- If grdView.AllowUserToAddRows = True Then subtractBy = 2 Else subtractBy = 1
- ' Write contents for each cell
- For i As Integer = 0 To grdView.RowCount - subtractBy
- fs.WriteLine(String.Format(" <ss:Row ss:Height=""{0}"">", _
- grdView.Rows(i).Height))
- For intCol As Integer = 0 To grdView.Columns.Count - 1
- cellText = grdView.Item(intCol, i).Value
- ' Check for null cell and change it to empty to avoid error
- If cellText = vbNullString Then cellText = ""
- fs.WriteLine(String.Format(" <ss:Cell ss:StyleID=""2"">" & _
- "<ss:Data ss:Type=""String"">{0}</ss:Data></ss:Cell>", _
- cellText.ToString))
- Next
- fs.WriteLine(" </ss:Row>")
- Next
- ' Close up the document
- fs.WriteLine(" </ss:Table>")
- fs.WriteLine("</ss:Worksheet>")
- fs.WriteLine("</ss:Workbook>")
- fs.Close()
- ' Open the file in Microsoft Excel
- ' 10 = SW_SHOWDEFAULT
- ShellEx(Me.Handle, "Open", myFile, "", "", 10)
- End Sub
- Private Sub Form1_Load(ByVal sender As System.Object, _
- ByVal e As System.EventArgs) Handles MyBase.Load
- ' Create a couple of rows
- Dim row1() As String = New String() {"Joe", "Benjamin", vbNullString, "23"}
- Dim row2() As String = New String() {"Michael", "", "Brown", "32"}
- Dim row3() As String = New String() {"Phil", "Todd", "Lee", "42"}
- ' Add the rows to the DataGridView
- DataGridView1.Rows.Add(row1)
- DataGridView1.Rows.Add(row2)
- DataGridView1.Rows.Add(row3)
- End Sub
- Private Sub Button1_Click(ByVal sender As System.Object, _
- ByVal e As System.EventArgs) Handles Button1.Click
- ' Call the export sub
- exportExcel(DataGridView1, "exportedData", ".xls", _
- My.Computer.FileSystem.SpecialDirectories.Desktop)
- End Sub
- End Class
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д