微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Silverlight 利用Telerik导出到Word续改进篇

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] 举报,一经查实,本站将立刻删除。

相关推荐