我在VS2015中使用ReportViewer,用C#编写。我的报告与此类似(不要挂在内容上,我只是在显示大部分是文本框):
如您所见,我的报告大部分是文本框,所有字段都从数据集中填充。
该报告完美无缺。可以毫无问题地导出到Excel和PDF。但是,我的最终用户希望在Word中使用它,但它不起作用。我遇到了错误:
InnerException {“主体太复杂,无法导出到Word。请简化ReportItems组合成矩形。”} System.Exception {Microsoft.ReportingServices.OnDemandReportRendering.ReportRenderingException}
我最初使用内置工具条的导出功能,然后编写了自己的工具。代码在这里:
private void button1_Click(object sender, EventArgs e)
{
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.InitialDirectory = @"C:\";
saveFileDialog.RestoreDirectory = true;
saveFileDialog.Title = "Browse Text Files";
saveFileDialog.DefaultExt = "docx";
saveFileDialog.Filter = "Word Doc (*.docx) | *.docx | PDF(*.pdf) | *.pdf";
saveFileDialog.CheckFileExists = false;
saveFileDialog.CheckPathExists = true;
Warning[] warnings;
string[] streams;
string mimeType;
string encoding;
string extension;
byte[] bytes = FirstTestReport.LocalReport.Render("WordOpenXml", null, out mimeType, out encoding, out extension, out streams, out warnings);
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
var filename = saveFileDialog.FileName;
System.IO.FileStream file = new System.IO.FileStream(filename, System.IO.FileMode.Create);
file.Write(bytes, 0, bytes.Length);
file.Close();
}
}
我可以对我的代码做些什么来解决此问题,还是在渲染过程中这是已知的“错误”?我在某处读到ReportViewer将每个文本框都视为一个表,这就是导致复杂性的原因。但是,错误本身说要用矩形包围它们?
FWIW,该错误发生在以“ byte [] bytes =“
此报告包含大约60个子报告。除了我自己的执行之外,任何快速而轻松的工作都将受到赞赏。