从DataGridView写入Excel

本文介绍了一种将DataGridView中的数据导出到Excel文件的方法。通过使用Visual Basic.NET,该过程包括创建保存对话框以选择文件路径,并将DataGridView的数据写入选定的Excel文件中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Imports System.IO

 

Public Class Form1

 

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

        ExportDataGridViewToExcel(DataGridView1)

    End Sub

 

    Public Sub ExportDataGridViewToExcel(ByVal dataGridview1 As DataGridView)

        Dim saveFileDialog As SaveFileDialog = New SaveFileDialog

        saveFileDialog.Filter = "Execl files (*.xls)|*.xls"

        saveFileDialog.FilterIndex = 0

        saveFileDialog.RestoreDirectory = True

        saveFileDialog.CreatePrompt = True

        saveFileDialog.Title = "导出Excel"

        saveFileDialog.ShowDialog()

        Dim myStream As Stream

        myStream = saveFileDialog.OpenFile

        Dim sw As StreamWriter = New StreamWriter(myStream, System.Text.Encoding.Unicode)

        Dim str As String = ""

        Try

            Dim i As Integer = 0

            While i < dataGridview1.ColumnCount

                If i > 0 Then

                    str += "" & Microsoft.VisualBasic.Chr(9) & ""

                End If

                str += dataGridview1.Columns(i).HeaderText

                i = i + 1

            End While

            sw.WriteLine(str)

            Dim j As Integer = 0

            While j < dataGridview1.Rows.Count

                Dim tempStr As String = ""

                Dim k As Integer = 0

                While k < dataGridview1.Columns.Count

                    If k > 0 Then

                        tempStr += "" & Microsoft.VisualBasic.Chr(9) & ""

                    End If

                    tempStr += dataGridview1.Rows(j).Cells(k).Value.ToString

                    k = k + 1

                End While

                sw.WriteLine(tempStr)

                j = j + 1

            End While

 

            sw.Close()

            myStream.Close()

            MessageBox.Show("导出成功")

        Catch e As Exception

            MessageBox.Show(e.ToString & " 发生错误!")

        Finally

            sw.Close()

            myStream.Close()

        End Try

    End Sub

 

End Class

 

### 如何将C# DataGridView 数据导出至 Excel 文件 为了实现从 `DataGridView` 导出数据到 Excel 的功能,可以采用多种方式。一种常见的方式是利用第三方库如 EPPlus 或 NPOI 来处理 Excel 文档操作。 以下是使用EPPlus库的一个简单例子来完成此任务: #### 使用 EPPlus 库导出 DataGridViewExcel 首先需要安装 NuGet 包 `EPPlus`: ```bash Install-Package EPPlus ``` 接着,在项目中编写如下代码片段用于导出逻辑: ```csharp using OfficeOpenXml; using System.IO; private void ExportToExcel(DataGridView dataGridView1) { string fileName = "ExportedData.xlsx"; using (var package = new ExcelPackage()) { var worksheet = package.Workbook.Worksheets.Add("Sheet1"); // 添加列头 for (int i = 0; i < dataGridView1.Columns.Count; i++) worksheet.Cells[1, i + 1].Value = dataGridView1.Columns[i].HeaderText; // 填充表格内容 for (int r = 0; r < dataGridView1.Rows.Count; r++) { for (int c = 0; c < dataGridView1.Columns.Count; c++) worksheet.Cells[r + 2, c + 1].Value = dataGridView1.Rows[r].Cells[c].Value?.ToString(); } File.WriteAllBytes(fileName, package.GetAsByteArray()); } } ``` 这段代码创建了一个新的 Excel 工作簿,将 `DataGridView` 中的内容逐行复制进去[^1]。需要注意的是这里假设所有的单元格都是字符串类型;如果存在其他类型的值,则可能需要额外转换逻辑以确保正确保存这些数值。 对于更复杂的场景,比如样式设置、公式计算等功能,还可以进一步探索 EPPlus 提供的各种 API 接口。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值