Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在ASP.NET MVC5中将图表导出到Excel_C#_Asp.net_Excel - Fatal编程技术网

C# 在ASP.NET MVC5中将图表导出到Excel

C# 在ASP.NET MVC5中将图表导出到Excel,c#,asp.net,excel,C#,Asp.net,Excel,我正在尝试将数据和图表从我的ASP.net项目导出到Excel,我正在使用下面的代码,但是我没有成功地在Excel文件中显示图表,我只看到文本 public ActionResult ExportToExcel() { string imgPath2 = Request.Url.GetLeftPart(UriPartial.Authority) + VirtualPathUtility.ToAbsolute("~/Content/"

我正在尝试将数据和图表从我的ASP.net项目导出到Excel,我正在使用下面的代码,但是我没有成功地在Excel文件中显示图表,我只看到文本

     public ActionResult ExportToExcel()
    {
        string imgPath2 = Request.Url.GetLeftPart(UriPartial.Authority) +                VirtualPathUtility.ToAbsolute("~/Content/" + tmpChartName);
        Response.Clear();
        Response.ContentType = "application/vnd.ms-excel";
        Response.AddHeader("Content-Disposition", "attachment; filename=test.xls;");
        StringWriter stringWrite = new StringWriter();
        HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);       
        string headerTable = @"<Table><tr><td>Begin</td><td><img src='" + imgPath2 + @"' /></td><td>end</td></tr></Table>";        
        Response.Output.Write(headerTable);
        Response.End();
        return null;
    }
public ActionResult ExportToExcel()
{
字符串imgPath2=Request.Url.GetLeftPart(UriPartial.Authority)+virtualPath.ToAbsolute(“~/Content/”+tmpChartName);
Response.Clear();
Response.ContentType=“application/vnd.ms excel”;
AddHeader(“内容处置”、“附件;文件名=test.xls;”);
StringWriter stringWrite=新建StringWriter();
HtmlTextWriter htmlWrite=新的HtmlTextWriter(stringWrite);
字符串headerTable=@“begined”;
响应.输出.写入(headerTable);
Response.End();
返回null;
}

通常我们不需要过度杀戮/高脂肪的库,相反,致命的简单库/助手类解决了我们的问题

我找到了一个生成Excel2007+文件的helpers类,并添加了一些扩展方法,用于将
List
数据转换为DataTable

虽然其文件已经,但需要总结:

  • 取消注释要与MVC/ASP.net项目一起使用的第一行
  • 该类在
    #region HELPER_函数中有一个方法

    public static DataTable ListToDataTable<T>(List<T> list)
    
    最后用法很简单将此代码放入控制器

        public void ExportToExcel()
        {
            using (var db = new EFDbContext())
            {
                var data = FetchDataAsList<MyDbEntityOrMvcModel>().ToDataTable();
                CreateExcelFile.CreateExcelDocument(data, "report.xlsx", System.Web.HttpContext.Current.Response);
            }
    
        }
    

    一般来说,我们不需要过度杀戮/高脂肪库,相反,致命的简单库/助手类解决了我们的问题

    我找到了一个生成Excel2007+文件的helpers类,并添加了一些扩展方法,用于将
    List
    数据转换为DataTable

    虽然其文件已经,但需要总结:

    • 取消注释要与MVC/ASP.net项目一起使用的第一行
    • 该类在
      #region HELPER_函数中有一个方法

      public static DataTable ListToDataTable<T>(List<T> list)
      
      最后用法很简单将此代码放入控制器

          public void ExportToExcel()
          {
              using (var db = new EFDbContext())
              {
                  var data = FetchDataAsList<MyDbEntityOrMvcModel>().ToDataTable();
                  CreateExcelFile.CreateExcelDocument(data, "report.xlsx", System.Web.HttpContext.Current.Response);
              }
      
          }
      

      你所说的图表实际上是一张表。实际上,您并没有创建Excel文件。您正在创建一个HTML文件,并使用Excel MIME类型和文件扩展名为其提供服务。相反,您需要使用诸如NPOI或OpenXML SDK之类的库来创建实际的Excel文件,null@DPac如果它直接写入响应,则不需要返回任何内容,这样就可以了。但这并不好。我假设这是MVC,因为方法类型表示它返回ActionResult。因此,它实际上不应该直接编写响应,而是应该返回一个
      FileResult
      。您所调用的图表实际上是一个表。实际上,您并没有创建Excel文件。您正在创建一个HTML文件,并使用Excel MIME类型和文件扩展名为其提供服务。相反,您需要使用诸如NPOI或OpenXML SDK之类的库来创建实际的Excel文件,null@DPac如果它直接写入响应,则不需要返回任何内容,这样就可以了。但这并不好。我假设这是MVC,因为方法类型表示它返回ActionResult。因此,它确实不应该直接写入响应,而是应该返回一个
      FileResult
      。此解决方案存在相同的问题,图像不会出现。此解决方案存在相同的问题,图像不会出现。