解决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);

猜你喜欢

转载自blog.csdn.net/u014650759/article/details/80835373