【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);gridview不显示
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);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论