c# 导出excel,合并单元格
时间: 2023-08-27 16:54:42 浏览: 190
要在 C# 中导出 Excel 并合并单元格,可以使用 `Microsoft.Office.Interop.Excel` 库。下面是一个示例代码,演示了如何导出一个 DataTable 并合并某些单元格:
```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 < rowCount; i++)
{
for (int j = 0; j < columnCount; j++)
{
worksheet.Cells[i + 2, j + 1] = dataTable.Rows[i][j].ToString();
}
}
// 合并单元格
Excel.Range range = worksheet.Range[worksheet.Cells[1, 1], worksheet.Cells[1, columnCount]];
range.Merge();
// 设置合并后单元格的样式
range.Font.Size = 16;
range.Font.Bold = true;
range.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
// 保存 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);
}
}
}
}
```
在这个示例中,我们首先在标题行上合并了所有单元格,并设置了合并后单元格的样式。你可以根据需要更改合并的范围、样式等。
希望这个示例对你有所帮助!如果还有其他问题,请随时提问。
阅读全文