【C#】解决dev控件中gridcontrol导出到excel的格式问题

dev控件中gridcontrol原样文本格式导出的处理
dev控件中gridcontrol控件有个功能,可以将里面的数据导出到excel文件中。简单的导出代码如下:

private void ExcelOut()
        {
            SaveFileDialog fileDialog = new SaveFileDialog();
            fileDialog.Title = "导出Excel";
            fileDialog.Filter = "Excel文件(*.xls)|*.xls";
            DialogResult dialogResult = fileDialog.ShowDialog(this);
            if (dialogResult == DialogResult.OK)
            {
                gCtrlRp.ExportToXls(fileDialog.FileName);
                XtraMessageBox.Show("保存成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }

通常,我们会遇到两个问题:
1.列宽度显示太窄
默认导出到excel时,列宽度显示为最小宽度,导致导出的excel单元格太小,需要手动拉伸后才能看到显示内容,这样就跟gridcontrol单元格内容的显示状态不一致。
解决方式很简单,设置OptionsPrint下的AutoWidth为false就可以了。

 

2.没有按显示文本格式导出,而是按绑定的数据源格式导出在将GridView导出为xls或xlsx格式时,因为有些状态字段原始数据用的数字表示,内部用了CustomColumnDisplayText进行了显示格式的转换,所以UI界面上显示的是“未生产”“已生产”“已出货”等等。这个时候直接导出,excel里面就是原来的数字“1”“2”“3”等数字了。
因为改变CustomColumnDisplayText只能影响显示的文字,并不会改变数据源的值。 默认情况下,GridControl导出的是数据字段值,而不是显示的文字。解决方式是,可以将导出数据作为一个字符串,通过将TextExportMode对象的XlsExportOptions属性设置为文本即可实现。

 

 

XlsExportOptions options = new XlsExportOptions(); 
options.TextExportMode = TextExportMode.Text; 
gCtrlRp.ExportToXls(fileDialog.FileName);
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
您可以使用以下代码示例将多个表导出到多个工作表,并自定义每个工作表的名称: ```csharp using DevExpress.XtraGrid.Views.Grid; using DevExpress.XtraSpreadsheet; using DevExpress.XtraSpreadsheet.Export; using System.IO; // 创建一个 SpreadsheetControl 实例 SpreadsheetControl spreadsheetControl = new SpreadsheetControl(); // 加载 Excel 文件 spreadsheetControl.LoadDocument("path_to_excel_file"); // 创建一个导出器实例 GridControlExporter exporter = new GridControlExporter(); // 设置导出选项 exporter.OptionsPrint.PrintDetails = true; // 导出细节视图 exporter.OptionsPrint.PrintSelectedRowsOnly = false; // 导出所有行 exporter.OptionsPrint.PrintGroupFooters = DevExpress.Utils.DefaultBoolean.False; // 不打印分组页脚 // 遍历每个 GridControl 及其对应的 GridView foreach (var gridControl in gridControls) { GridView gridView = gridControl.MainView as GridView; string sheetName = "CustomSheetName"; // 自定义的工作表名称 // 创建一个新的工作表 Worksheet worksheet = spreadsheetControl.Document.Worksheets.Add(); worksheet.Name = sheetName; // 将 GridControl 导出到工作表 exporter.Export(gridView, worksheet, null, null); } // 保存导出Excel 文件 using (MemoryStream stream = new MemoryStream()) { spreadsheetControl.SaveDocument(stream, DocumentFormat.Xlsx); File.WriteAllBytes("path_to_exported_excel_file", stream.ToArray()); } ``` 请注意,上述代码的 `gridControls` 是一个包含要导出GridControl 的集合。您可以根据您的实际情况进行调整和修改。 希望这可以帮助到您!如有任何其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值