我需要在导出的表之前添加额外的行:
| column1 | column2 |
| value | value |
我需要以这样的方式导出:
| date: 20.21.23 | date: 22.11.14 |
| column1 | column2 |
| value | value |
这些日期值存储在我的viewmodel中,对我来说最好的解决方案是将这些单元格添加到gridcontrol视图中,该视图仅在打印时可见。 我不确定那是否可能。
目前我正以这种方式打印:
var link = new PrintableControlLink(Grid.View as IPrintableControl);
link.PrintingSystem.ExportOptions.Xlsx.TextExportMode = TextExportMode.Text;
link.CreateDocument(false);
link.ExportToXls(ms);
答案 0 :(得分:0)
您需要为gridcontrol定义数据模板:
<dxg:GridControl.Resources>
<DataTemplate x:Key="HeaderTemplate">
<StackPanel Orientation="Horizontal">
<dxe:TextEdit Text="{Binding Path=Content.ViewModelProp1, Mode=OneWay}" />
<dxe:TextEdit Text="{Binding Path=Content.ViewModelProp2, Mode=OneWay}" />
</StackPanel>
</DataTemplate>
</dxg:GridControl.Resources>
在你的处理程序中,你需要使用这样的代码:
var ms = new MemoryStream();
var link = new PrintableControlLink(Grid.View as IPrintableControl);
link.PrintingSystem.ExportOptions.Xlsx.TextExportMode = TextExportMode.Text;
link.PageHeaderData = DataContext; //viewmodel instance
link.PageHeaderTemplate = (DataTemplate)Grid.Resources["HeaderTemplate"];
link.CreateDocument(false);
link.ExportToXls(ms);
我想强调一下,要从模板访问 DataContext ,您需要使用 Content 属性(例如 Content.ViewModelProp2 )。换句话说,它将尝试访问RowContent模型属性。