DataGridView导出Excel

把DataGridView中的信息导出到Excel是《机房收费系统》的功能之一,这里主要是VS与Office的交互,方法有n多种(从这里就可以看出这个功能难不到哪里去了),现在就介绍一下我使用的一种吧,首先需要添加并引用命名空间。

1.添加:右击窗体所在的项目名即U层的项目名——添加——引用——出现下面图片,搜索Excel,在结果中选中符合版本的Microsoft.Interop.Excel

2.引用命名空间:Imports Microsoft.Office.Interop

由于多次用到了导出Excel的功能,所以把它单独封装到了一个函数ExportToExcel中并放在模块里

    Public Function ExportToExcel(ByVal dtg As DataGridView) As Boolean
        'DataGridView中没有信息,退出该过程
        If dtg.Rows.Count = 0 Then
            MsgBox("没有信息可导出!")
            Return False
            Exit Function
        End If

        '定义一个Excel程序、工作簿、工作表
        Dim xlApp As New Excel.Application()
        Dim xlBook As Excel.Workbook = xlApp.Workbooks.Add()
        Dim xlSheet As Excel.Worksheet = xlBook.Worksheets(1)

        '定义Excel表格的行列索引
        Dim rowIndex As Integer = 1
        Dim colIndex As Integer = 0

        '给Excel添加表头
        For col As Integer = 0 To dtg.Columns.Count - 1
            colIndex = colIndex + 1
            xlSheet.Cells(1, colIndex) = dtg.Columns(col).HeaderText
        Next

        '将DataGridView中的信息添加到Excel中
        For row As Integer = 0 To dtg.RowCount - 1
            rowIndex = rowIndex + 1
            colIndex = 0
            For col As Integer = 0 To dtg.Columns.Count - 1
                colIndex = colIndex + 1
                xlSheet.Cells(rowIndex, colIndex) = dtg(col, row).Value.ToString()
            Next
        Next

        xlApp.Visible = True                                    '显示Excel表

        Return True
    End Function

窗体调用代码

    Private Sub btnExcel_Click(sender As Object, e As EventArgs) Handles btnExcel.Click
        Call GlobalData.ExportToExcel(dtgChargeCash)
    End Sub

以上就是U层的代码,B、D两层的与其它窗体的类似。这里需要提示一点的是

dtg(col,row)先列后行,行列从0开始,表头不计在行数内。

Excel(row,col)先行后列,行列从1开始,表头记在行数内。

时间: 2024-11-08 23:09:43

DataGridView导出Excel的相关文章

NPOI DataGridView导出EXCEL

NPOI 官方网站 http://npoi.codeplex.com/ 加载NPOI.DLL ,引用这两个命名空间 using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; #region NPOI DataGridView 导出 EXCEL /// <summary> /// NPOI DataGridView 导出 EXCEL /// </summary> /// <param name="fileName"

从DataGridView导出Excel

从DataGridView导出Excel的两种情况,不多说,直接记录代码. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; using System.Data; namespace cnblogs { public static class LoadExcel { public sta

Winform将DataGridView导出Excel,调用打印机打印DataGridView

DataGridView导出Excel (这个需要 Microsoft.Office.Interop.Excel.dll  在网上下载就可以) public static void ExportExcel(string fileName, DataGridView myDGV) { string saveFileName = ""; SaveFileDialog saveDialog = new SaveFileDialog(); saveDialog.DefaultExt = &qu

C#winform中datagridview导出Excel

只需要传入datagridview的name即可. 1 //导出Excel()方法 2 public void ToExcel(DataGridView dataGridView) 3 { 4 //实例化一个Excel.Application对象 5 Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application(); 6 7 if (excel == null)

Winform DataGridView导出Excel

private void 导出excelToolStripMenuItem_Click(object sender, EventArgs e) { if (dgvData.RowCount > 0) { var saveFileDialog1 = new SaveFileDialog { Filter = @"Excel文件(*.xls,*.xlsx)|*.xls;*.xlsx", RestoreDirectory = true }; if (saveFileDialog1.Sh

C# DataGridView导出Excel

using Microsoft.Office.Interop.Excel; using Excel=Microsoft.Office.Interop.Excel; //这里Excel和Interop报错,请参考我的另一篇http://blog.csdn.net/xtfnpgy/article/details/41076849 public bool ExportDataGridview(DataGridView gridView,string str_path) { if(gridView.Ro

DataGridView导出Excel ,比较实用的代码

将DataGridView里面的数据,导出到表格里面去. 首先,需要添加三个引用 直接在解决方案里,右键添加引用,找到路径即可.然后再把这三个文件复制到项目的根目录下. 然后定义导出表格的函数: public static void DataGridViewToExcel(DataGridView dgv) { #region 验证可操作性 //申明保存对话框 SaveFileDialog dlg = new SaveFileDialog(); //默然文件后缀 dlg.DefaultExt =

一个通用的DataGridView导出Excel扩展方法(支持列数据格式化)

假如数据库表中某个字段存放的值“1”和“0”分别代表“是”和“否”,要在DataGridView中显示“是”和“否”,一般用两种方法,一种是在sql中直接判断获取,另一种是在DataGridView的CellFormatting事件中设置.下面介绍的是第二种情况下的处理.举个例子,DataGridView的第4列需要在金额后面加个“元”,在第14列根据1和0显示为相应的是和否,在显示的时候可以这样设置: http://blog.csdn.net/gdjlc/article/details/158

C# Winform datagridview导出EXCEL

string saveFileName = ""; //bool fileSaved = false; SaveFileDialog saveDialog = new SaveFileDialog(); saveDialog.DefaultExt = "xls"; saveDialog.Filter = "Excel文件|*.xls"; saveDialog.ShowDialog(); saveFileName = saveDialog.File