Экспорт из 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Решение задачи: «Экспорт из 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д