当前位置:首页 > 代码 > 正文

vb导出excel代码(vb数据导出到excel)(2024-05-31)

admin 发布:2024-05-31 19:12 139


本篇文章给大家谈谈vb导出excel代码,以及vb数据导出到excel对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

vb中如何将数据导出到excel

介绍

下面通过一步一步的介绍,如何通过VB.NET来读取数据,并且将数据导入到Excel中。

第一步:

打开VS开发工具,并且添加引用。

然后选择。

Microsoft Excel 12.0 object library and。

Microsoft Excel 14.0 object library。

第二步:

创建一个Excle在你的电脑中。

第三步:

在VS中写入如下代码:

Imports System.Data

Imports System.Data.SqlClient

Imports Excel = Microsoft.Office.Interop.Excel。

Public Class excel

‘添加按钮

  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _

      Handles Button1.Click

      Try

          '创建连接

          Dim cnn As DataAccess = New DataAccess(CONNECTION_STRING)

          

          Dim i, j As Integer

          '创建Excel对象

          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

          xlApp = New Microsoft.Office.Interop.Excel.ApplicationClass

          xlWorkBook = xlApp.Workbooks.Add(misValue)

          ' 打开某一个表单

          xlWorkSheet = xlWorkBook.Sheets("sheet1")

          ' sql查询

          '  xlWorkBook.Sheets.Select("A1:A2")

          Dim sql As String = "SELECT * FROM EMP"

          ' SqlAdapter

          Dim dscmd As New SqlDataAdapter(sql, cnn.ConnectionString)

          ' 定义数据集

          Dim ds As New DataSet

          dscmd.Fill(ds)

         ‘添加字段信息到Excel表的第一行

          xlWorkSheet.Cells(1, 1).Value = "First Name"

          xlWorkSheet.Cells(1, 2).Value = "Last Name"

          xlWorkSheet.Cells(1, 3).Value = "Full Name"

          xlWorkSheet.Cells(1, 4).Value = "Salary"

          ' 将数据导入到excel

            For i = 0 To ds.Tables(0).Rows.Count - 1

              'Column

              For j = 0 To ds.Tables(0).Columns.Count - 1

                  ' this i change to header line cells

                  xlWorkSheet.Cells(i + 3, j + 1) = _

                  ds.Tables(0).Rows(i).Item(j)

              Next

          Next

          'HardCode in Excel sheet

          ' this i change to footer line cells  

         xlWorkSheet.Cells(i + 3, 7) = "Total"

          xlWorkSheet.Cells.Item(i + 3, 8) = "=SUM(H2:H18)"

          ' 保存到Excel

          xlWorkSheet.SaveAs("D:\vbexcel.xlsx")

          xlWorkBook.Close()

          xlApp.Quit()

          releaseObject(xlApp)

          releaseObject(xlWorkBook)

          releaseObject(xlWorkSheet)

          '弹出对话框显示保存后的路径

          MsgBox("You can find the file D:\vbexcel.xlsx")

      Catch ex As Exception

      End Try

  End Sub

  ' Function of Realease Object in Excel Sheet

  Private Sub releaseObject(ByVal obj As Object)

      Try

          System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)

          obj = Nothing

      Catch ex As Exception

          obj = Nothing

      Finally

          GC.Collect()

      End Try

  End Sub

End Class

复制代码。

第四步:

看到如下导出结果。

   

vb导出excel代码详解

private void ExportExcelFromDataGrid

( string filename , System.Web.UI.WebControls.DataGrid ToExcelGrid )

...{

Response.Clear();

Response.Buffer= true;

Response.Charset="utf-8";

Response.AppendHeader ("Content-Disposition","attachment;filename="+Server.UrlEncode ( filename ) );

Response.ContentEncoding=System.Text.Encoding.Default;//设置输出流为简体中文

Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。

this.EnableViewState = false;

System.Globalization.CultureInfo myCItrad =

new System.Globalization.CultureInfo("ZH-CN",true);

System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);

System.Web.UI.HtmlTextWriter oHtmlTextWriter =

new System.Web.UI.HtmlTextWriter(oStringWriter);

ToExcelGrid.RenderControl(oHtmlTextWriter);

Response.Write(oStringWriter.ToString());

Response.End();

}

private void Button4_Click(object sender, System.EventArgs e)

...{

this.Panel1.Visible = false;

string filename = "内训师.xls";

this.DataGrid1.Columns[6].Visible = true;

this.DataGrid1.Columns[7].Visible = true;

this.DataGrid1.Columns[this.DataGrid1.Columns.Count-1].Visible = false; // *

this.DataGrid1.Columns[this.DataGrid1.Columns.Count-2].Visible = false; // *

this.DataGrid1.AllowSorting = false; // *

this.DataGrid1.AllowPaging = false;

this.DataGrid1.SelectedIndex = -1; // *

this.BindGrid();

this.ExportExcelFromDataGrid ( filename , this.DataGrid1 );

}

}

原理是利用DataGrid(其实是其父类Control)的RenderControl方法输出,整个DataGrid的外观时,将这些HTML代码写入到缓冲区,同时设置一下 ContentType ,让Excel自己的自动纠错功能将这个输出存为一个Excel文件。

很多网上的朋友使用了以上这种可粘贴性强的代码,发现不好用,反映的错误类似:

“LinkButton必须放在一个具有runat=server的标签的Form”之类的话,而更多的网友说:

问题很明显,因为DataGrid没有放在runat=server 的Form里面,加上就可以了。

我认为,这种回答是很不准确的,理由如下:

通常使用这种代码的人他/她的DataGrid,最起码已经能用了,所以必定放在那个具有runat=server 的form标签里了。 报错是LinkButton,而不是DataGrid,很多细心的朋友很可能会说,我一直在用DataGrid,LinkButton在哪里来的。 其实真正的问题是,上面的代码没有加了 // * 的那几行代码引起的。

当然如果你的DataGrid,没有排序,没有使用那种按钮列的话,是不会出问题的。

言归正传,LinkButtion其实是你将DataGrid设为可排序时候,的表头包含的,所以我要将DataGrid的排序设为False。

同样得到上面的其实,那些按钮列,什么"编辑"、“删除”等等这些,也是用了LinkButton,把他设为不可见就是了。

其实说得再明白一点就是,将有可能产生LinkButton,或其他控件的东西都不让它输出就是了

vb.net dataGridView中的数据导出为excel表2010-03-01 15:03在form1窗体里添加一个dataGridView1(根据自己是使用情况要给他命名,符合命名规范哟。)在添加一个Button1(命名)。记着,dataGridView的属性里有一个allowUsersToAddRows,要设置成FALSE。否则会发生一个错误,当然错误是什么你自己试一下就ok了。

还有一点要注意:因为你要用到excel表,所以要首先在项目里添加引用哟:项目(project)-添加引用(add reference)-Microsoft .Office.Interop.Excel

Button1的代码:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

'要先添加引用才能用到 Microsoft.Office.Interop.Excel.Application()

Dim MyExcel As New Microsoft.Office.Interop.Excel.Application()

MyExcel.Application.Workbooks.Add(True)

MyExcel.Visible = True

'去除dataGridView1的编号列(这里也可以不要)

Dim m As Integer

For m = 0 To DataGridView1.ColumnCount - 1

MyExcel.Cells(1, m + 1) = Me.DataGridView1.Columns(m).HeaderText

Next m

'往excel表里添加数据

Dim i As Integer

For i = 0 To DataGridView1.RowCount - 1

Dim j As Integer

For j = 0 To DataGridView1.ColumnCount - 1

If Me.DataGridView1(j, i).Value Is System.DBNull.Value Then

MyExcel.Cells(i + 2, j + 1) = ""

Else

MyExcel.Cells(i + 2, j + 1) = DataGridView1(j, i).Value.ToString

End If

Next j

Next i

End Sub

VB中的打印和导出数据到EXCEL的代码是什么啊?

你新建一数据工程,在其窗体中添加ADODC数据控件和DATAGRID控件。添加COMMAND控件,将按钮控件的属性TABINDEX设置为0

使用以下代码,可将在DATAGRID控件显示的数据导出到EXCEL,将下列代码中的数据库连接语句和表名改为你自己的数据库和表名:

Option Explicit

Dim i, j, k As Integer

Dim strConn As String

Dim pubConn As New adodb.Connection

Dim rsTable As New adodb.Recordset

Dim strSQL As String

Dim xlapp As Variant

Dim xlBook As Variant

Dim xlSHEET As Variant

Private Sub Command1_Click()

Set xlapp = CreateObject("excel.application")

Set xlBook = xlapp.workbooks.Add

Set xlSHEET = xlBook.worksheets(1)

xlapp.Visible = True

On Error Resume Next

If Err.Number 0 Then Set xlapp = CreateObject("Excel.Application")

Set xlBook = xlapp.workbooks.Add

Set xlSHEET = xlBook.ActiveSheet

For k = 1 To DataGrid1.Columns.Count

xlSHEET.Cells(1, k) = DataGrid1.Columns(k - 1).Caption

Next k

For i = 1 To Adodc1.Recordset.RecordCount + 1

For j = 0 To DataGrid1.Columns.Count

xlSHEET.Cells(i + 1, j + 1) = Adodc1.Recordset(j) '

Next j

Adodc1.Recordset.MoveNext

Next i

End Sub

Private Sub Form_Load()

strSQL = "select * from mdlk_sj where 批号='D012'"

Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" App.Path "\hxrkgl.mdb;Persist Security Info=False"

Adodc1.RecordSource = strSQL

Adodc1.Refresh

End Sub

vb导出到excel

Option Explicit

Private Sub Form_Load()

Dim i As Long, j As Long

Me.MSHFlexGrid1.Rows = 2000

Me.MSHFlexGrid1.Cols = 10

For i = 0 To Me.MSHFlexGrid1.Rows - 1

For j = 0 To Me.MSHFlexGrid1.Cols - 1

Me.MSHFlexGrid1.TextMatrix(i, j) = i "行" j "列"

Next

Next

Debug.Print Me.MSHFlexGrid1.TextArray(100)

End Sub

Private Sub cmdExport_Click()

Dim i As Long, j As Long

Dim CellsData() As String

Dim objApp As Excel.Application

Dim objWorkbook As Excel.Workbook

Dim objWorksheet As Excel.Worksheet

Dim objRange As Excel.Range

'构造二维数组

ReDim CellsData(1 To Me.MSHFlexGrid1.Rows, 1 To Me.MSHFlexGrid1.Cols)

For i = 1 To Me.MSHFlexGrid1.Rows

For j = 1 To Me.MSHFlexGrid1.Cols

CellsData(i, j) = Me.MSHFlexGrid1.TextMatrix(i - 1, j - 1)

Next

Next

'导出到Excel中

Set objApp = New Excel.Application

objApp.ScreenUpdating = False '禁止屏幕刷新

Set objWorkbook = objApp.Workbooks.Add

Set objWorksheet = objWorkbook.Sheets.Add

Set objRange = objWorksheet.Range(objWorksheet.Cells(1, 1), objWorksheet.Cells(Me.MSHFlexGrid1.Rows, Me.MSHFlexGrid1.Cols))

objRange.Value = CellsData

objApp.Visible = True

objApp.ScreenUpdating = True

'销毁二维数组

Erase CellsData

Me.SetFocus

MsgBox "导出完毕"

End Sub

关于vb导出excel代码和vb数据导出到excel的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/10601.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载