我需要将数据导出到格式化的Excel文档。
基本上,非技术人员应该能够创建(或只是修改)将成为导出过程模板的Excel文档。
模板应描述标题,使用的字段等。了解模板我必须将数据导出到此文档。基本上,它看起来像这样:
Header
{record.Name}
模板文档会非常复杂 - 它会有自定义格式,标签等。但是,格式化单元格不是我的任务,我只需要用数据填充文档。我不仅需要导出单个字段,还需要导出列表,因此我需要为列表中的每个元素添加行。
目前,我正在使用Excel 2003,但如果此版本支持更好的集成,我可以将其更改为Excel 2007。
我不知道Excel是否允许开箱即用的这种集成,但对我而言,如果我必须在Excel文档中定义一些自定义标签或使用某些第三方库,这一点并不重要。
我正在使用.NET 3.5和C#。
答案 0 :(得分:0)
您可以使用MIME作为Excel将页面中的控件导出到Excel:
private void Button1_Click(object sender, System.EventArgs e)
{
//Export to excel.
Response.Clear();
Response.Buffer= true;
Response.ContentType = "application/vnd.ms-excel";
Response.Charset = "";
this.EnableViewState = false;
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
this.ClearControls(datagrid);
datagrid.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
Response.End();
}
有关详细信息,请参阅"Export ASP.NET DataGrid to Excel"教程。
答案 1 :(得分:0)
至少有两种与Excel集成的方法
就我个人而言,我认为第二种选择在这里更好,因为你肯定需要linq功能才能完成这类工作。
答案 2 :(得分:0)
答案 3 :(得分:0)
我最终在excel中使用xml数据源并创建了xml映射。多亏了这一点,我得到了非技术用户可以编辑的漂亮模板,而在代码中我只创建了我的数据的xml描述。在使用它之前,必须创建定义数据模式的xsd文件。