首页 > 解决方案 > 在服务器端代码上运行 Highcharts 以添加到 Word 文档

问题描述

我在 ASP.Net MVC 项目上使用 Highcharts。在客户端/js 上一切都很好,但是我需要通过项目创建一个 word 文档,其中包含您可以在屏幕上看到的这些图表之一。

我目前使用 Novacode 的 docx 库来创建/修改 word 文件,这很好用。我可以轻松添加图像,如有必要,我可以使用 .Nets 图表库创建基本外观图表,但我更喜欢使用 Highcharts 图表。

有谁知道如何通过控制器(即服务器端)创建 Highcharts 图表或获取图像以供在文档中使用。我能找到的唯一示例仍然需要一定程度的 JS 才能完成。

标签: c#asp.net-mvchighcharts

解决方案


我最终使用以下方法自己解决了这个问题:

HttpClient client = new HttpClient();
        client.BaseAddress = new Uri("http://export.highcharts.com");
        client.DefaultRequestHeaders.Accept.Clear();
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
        var content = new StringContent(json, Encoding.UTF8, "application/json");

        HttpResponseMessage response = client.PostAsync("", content).Result;
        if (response.IsSuccessStatusCode)
        {
            FileStream fileStream = new FileStream(pathname, FileMode.Create, FileAccess.Write, FileShare.None);
            response.Content.CopyToAsync(fileStream).ContinueWith(
               (copyTask) =>
               {
                   fileStream.Close();
               });
        }
        else
        {
            Console.WriteLine($"Failed to poste data. Status code:{response.StatusCode}");
        }

我通过此处的选项构建的 json:https ://www.highcharts.com/docs/export-module/export-module-overview

为粗略的例子道歉,我显然会修改和清理我的结尾,但如果其他人觉得它有用,我想给出答案。


推荐阅读