如何修改WPF程序导出Excel文件的列名?
如何在XLWorkbook导出的Excel中添加自定义列名?
要给导出的Excel添加自定义列名,只需在写入数据前先在工作表第一行设置表头文本,再将数据从第二行开始写入即可。修改后的核心代码如下:
ExportExcel = new RelayCommand(x => { MessageBoxResult result = MessageBox.Show("Do you want to export to Excel?", "Export to Excel", MessageBoxButton.YesNo, MessageBoxImage.Question); if (result == MessageBoxResult.Yes) { var saveFileDialog = new SaveFileDialog { Filter = "Excel files|*.xlsx", Title = "Save an Excel File" }; // 判断用户是否确认选择了保存路径 if (saveFileDialog.ShowDialog() == true) { var workbook = new XLWorkbook(); var worksheet = workbook.Worksheets.Add("Sample Sheet"); // 设置自定义列名(第一行作为表头) worksheet.Cell("A1").Value = "Vender Name"; worksheet.Cell("B1").Value = "Date"; worksheet.Cell("C1").Value = "Amount"; worksheet.Cell("D1").Value = "Drawer"; worksheet.Cell("E1").Value = "Bank Template"; // 数据从第二行开始写入(i+2对应行号) for (int i = 0; i < _listCheckRecordModel.Count; i++) { int cellIndex = i + 2; worksheet.Cell("A" + cellIndex).Value = _listCheckRecordModel[i].Vender.VenderName; worksheet.Cell("B" + cellIndex).Value = _listCheckRecordModel[i].IssueDate; worksheet.Cell("C" + cellIndex).Value = _listCheckRecordModel[i].Amount; worksheet.Cell("D" + cellIndex).Value = _listCheckRecordModel[i].Drawer; worksheet.Cell("E" + cellIndex).Value = _listCheckRecordModel[i].BankTemplate; } // 保存到用户选择的路径 workbook.SaveAs(saveFileDialog.FileName); } } });
关键修改说明:
- 添加表头行:在数据写入前,为第一行对应单元格设置自定义列名,明确各列含义。
- 调整数据起始行:将循环中的
cellIndex从i+1改为i+2,确保数据从第二行开始,不会覆盖表头。 - 优化保存逻辑:增加对保存对话框返回结果的判断,仅在用户确认路径后执行导出;移除多余的默认保存语句,避免生成不必要的文件。
内容的提问来源于stack exchange,提问作者David Lightman
相关产品推荐
相关产品推荐

