1,定义一个gridview和两个exportoption
private RadGridView grid = new RadGridView();
private GridViewExportOptions options = new GridViewExportOptions();
private GridViewExportOptions innerOptions = new GridViewExportOptions();
2,将第一个exportoption设置成文本格式,第二个exportoption设置成html格式。
grid.ElementExporting += new EventHandler<GridViewElementExportingEventArgs>(grid_ElementExporting);
grid.ElementExported += new EventHandler<GridViewElementExportedEventArgs>(DataGridView_ElementExported);
grid.GridLinesVisibility = Telerik.Windows.Controls.GridView.GridLinesVisibility.None;
grid.BorderThickness = new Thickness(0);
grid.AutoGenerateColumns = false;
options.ShowColumnHeaders = false;
options.Format = ExportFormat.Text;
options.Encoding = System.Text.Encoding.UTF8;
innerOptions.ShowColumnHeaders = true;
innerOptions.Format = ExportFormat.Html;
innerOptions.Encoding = System.Text.Encoding.UTF8;
3,在grid中随意添加一个item
private void ExportButton_Click(object sender,RoutedEventArgs e)
{
SaveFileDialog dialog = new SaveFileDialog();
dialog.DefaultExt = "doc";
dialog.Filter = String.Format("{1} files (*.{0})|*.{0}|All files (*.*)|*.*","doc","Word");
dialog.FilterIndex = 1;
if (dialog.ShowDialog() == true)
{
using (Stream stream = dialog.OpenFile())
{
grid.Items.Add(new TextBlock());
grid.Export(stream,options);
}
}
}
4,最后就可以在element_exported回调中定义自己的打印逻辑了,格式完全按照html样式来调整
void DataGridView_ElementExported(object sender,GridViewElementExportedEventArgs e) { if (e.Element == ExportElement.Row) { if (Model != null) { e.Writer.Write(String.Format("<h1> {0}信息报表</h1>",Model.entername)); e.Writer.Write("<h2>基本信息</h2>\n"); e.Writer.Write("<p>"); e.Writer.Write(String.Format(@"<b>污染源:</b> {0} <br />",Model.code_pollute)); e.Writer.Write(String.Format(@"<b>企业名称:</b> {0} <br />",Model.entername)); e.Writer.Write(String.Format(@"<b>企业类型:</b> {0} <br />",Model.code_enterrelation)); e.Writer.Write(String.Format(@"<b>企业类型:</b> {0} <br />",Model.code_qualification)); e.Writer.Write(String.Format(@"<b>企业类型:</b> {0} <br />",Model.code_enterrelation)); e.Writer.Write("</p>\n"); e.Writer.Write("<h2>监测数据</h2>\n"); e.Writer.Write("<p>"); MemoryStream memoryStream = new MemoryStream(); DataGridView.Export(memoryStream,innerOptions); memoryStream.Flush(); e.Writer.Write(System.Text.Encoding.UTF8.GetChars(memoryStream.ToArray())); e.Writer.Write("</p>"); } } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。