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

本文介绍了使用DevGridControl导出Excel时常见的两个问题及解决方案:一是调整列宽以匹配显示效果;二是确保导出的文本格式与显示内容一致。通过设置OptionsPrint.AutoWidth和XlsExportOptions.TextExportMode来解决这些问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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);
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值