从DataGridView写入Excel

本文介绍了一种使用Visual Basic.NET将DataGridView控件中的数据导出到Excel文件的方法。通过创建一个简单的Windows Forms应用程序,演示了如何实现这一功能。文章详细展示了导出过程中的关键步骤,包括设置SaveFileDialog对话框以便用户选择保存位置,以及如何逐行写入数据。

摘要生成于 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 接口。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值