写一段winform导出datatable到excel的代码,excel第一行为标题,第二行为表头,excel最后还要加上页脚
时间: 2023-07-21 11:11:37 浏览: 192
当然,下面是一段示例代码,用于将 DataTable 导出到 Excel,包括标题、表头和页脚:
```csharp
using System;
using System.Data;
using System.IO;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;
namespace ExcelExportDemo
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
private void ExportButton_Click(object sender, EventArgs e)
{
// 创建一个新的 Excel 应用程序实例
Excel.Application excelApp = new Excel.Application();
excelApp.Visible = false;
// 创建一个工作簿并获取其工作表
Excel.Workbook workbook = excelApp.Workbooks.Add();
Excel.Worksheet worksheet = workbook.ActiveSheet;
// 获取 DataTable 的列数和行数
int columnCount = dataTable.Columns.Count;
int rowCount = dataTable.Rows.Count;
// 写入标题行
for (int i = 0; i < columnCount; i++)
{
worksheet.Cells[1, i + 1] = dataTable.Columns[i].ColumnName;
}
// 写入表头行
for (int i = 0; i < columnCount; i++)
{
worksheet.Cells[2, i + 1] = dataTable.Rows[0][i].ToString();
}
// 写入数据行
for (int i = 1; i < rowCount; i++)
{
for (int j = 0; j < columnCount; j++)
{
worksheet.Cells[i + 2, j + 1] = dataTable.Rows[i][j].ToString();
}
}
// 设置页脚
Excel.PageSetup pageSetup = worksheet.PageSetup;
pageSetup.CenterFooter = "页码: &P";
// 保存 Excel 文件
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "Excel 文件|*.xlsx";
saveFileDialog.Title = "保存 Excel 文件";
saveFileDialog.ShowDialog();
if (saveFileDialog.FileName != "")
{
workbook.SaveAs(saveFileDialog.FileName);
workbook.Close();
excelApp.Quit();
MessageBox.Show("导出成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
MessageBox.Show("未选择文件路径!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}
```
请注意,上述代码使用了 `Microsoft.Office.Interop.Excel` 库来操作 Excel。在使用之前,需要先在项目中引用 `Microsoft.Office.Interop.Excel` 组件。
此代码示例中的 `ExportButton_Click` 方法是一个事件处理程序,应该与窗体上的导出按钮的 Click 事件关联。在这个方法中,我们使用了 `SaveFileDialog` 对话框来让用户选择保存的文件路径。导出成功后,会弹出一个提示框。
希望这段代码能帮到你!如果有任何问题,请随时提问。
阅读全文