XtraGrid导出Xlsx时隐藏横竖线/解决竖线超出最后行问题
解决DevExpress XtraGrid导出Xlsx时竖线未终止或隐藏边框的问题
嘿,我来帮你搞定这个导出Excel时的竖线问题!针对你的需求,我整理了两种解决方案,你可以根据自己的场景选择:
方案一:让竖线在最后一行正常终止
这个问题通常是因为导出时默认的边框渲染逻辑没有处理好最后一行的底部边框。你可以通过XlsxExportOptionsEx来精确控制导出的边框设置,确保每行(包括最后一行)的边框都完整渲染。
修改你的导出代码如下:
private void btnExport_Click(object sender, EventArgs e) { using (SaveFileDialog saveDialog = new SaveFileDialog()) { saveDialog.Filter = "Excel (2007-2019) (.xlsx)|*.xlsx |Word (2007-2019) (.docx)|*.docx |Pdf File (.pdf)|*.pdf |Html File (.html)|*.html"; if (saveDialog.ShowDialog() != DialogResult.Cancel) { string filePath = saveDialog.FileName; // 创建Xlsx导出选项 XlsxExportOptionsEx exportOptions = new XlsxExportOptionsEx(); // 启用精确的所见即所得导出模式 exportOptions.ExportType = DevExpress.Export.ExportType.WYSIWYG; // 强制设置行和页脚面板的边框样式,确保完整渲染 gridView1.Appearance.Row.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.Default; gridView1.Appearance.FooterPanel.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.Default; // 执行导出 gridControl1.ExportToXlsx(filePath, exportOptions); // 导出后提示打开文件(可选) if (MessageBox.Show("文件已导出,是否打开?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes) { System.Diagnostics.Process.Start(filePath); } } } }
关键设置说明:
ExportType = ExportType.WYSIWYG:让导出效果和网格控件的视觉效果完全一致,避免边框渲染丢失。- 显式设置
Row和FooterPanel的BorderStyle为Default,确保每行的上下左右边框都被正确渲染。
方案二:直接隐藏所有横竖线
如果你不需要任何边框,可以通过以下两种方式实现:
方式1:在导出选项中直接禁用网格线
private void btnExport_Click(object sender, EventArgs e) { using (SaveFileDialog saveDialog = new SaveFileDialog()) { saveDialog.Filter = "Excel (2007-2019) (.xlsx)|*.xlsx |Word (2007-2019) (.docx)|*.docx |Pdf File (.pdf)|*.pdf |Html File (.html)|*.html"; if (saveDialog.ShowDialog() != DialogResult.Cancel) { string filePath = saveDialog.FileName; XlsxExportOptionsEx exportOptions = new XlsxExportOptionsEx(); // 禁用所有网格线的导出 exportOptions.ShowGridLines = false; gridControl1.ExportToXlsx(filePath, exportOptions); if (MessageBox.Show("文件已导出,是否打开?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes) { System.Diagnostics.Process.Start(filePath); } } } }
方式2:提前设置网格控件隐藏边框
在导出操作前,先把网格的横竖线隐藏,这样导出的Excel也会同步没有边框:
// 导出前设置网格隐藏所有横竖线 gridView1.OptionsView.ShowHorizontalLines = DevExpress.Utils.DefaultBoolean.False; gridView1.OptionsView.ShowVerticalLines = DevExpress.Utils.DefaultBoolean.False; // 执行导出操作 gridControl1.ExportToXlsx(filePath);
内容的提问来源于stack exchange,提问作者M.Bouabdallah
相关产品推荐
相关产品推荐

