c# - 在服务器端代码上运行 Highcharts 以添加到 Word 文档
问题描述
我在 ASP.Net MVC 项目上使用 Highcharts。在客户端/js 上一切都很好,但是我需要通过项目创建一个 word 文档,其中包含您可以在屏幕上看到的这些图表之一。
我目前使用 Novacode 的 docx 库来创建/修改 word 文件,这很好用。我可以轻松添加图像,如有必要,我可以使用 .Nets 图表库创建基本外观图表,但我更喜欢使用 Highcharts 图表。
有谁知道如何通过控制器(即服务器端)创建 Highcharts 图表或获取图像以供在文档中使用。我能找到的唯一示例仍然需要一定程度的 JS 才能完成。
解决方案
我最终使用以下方法自己解决了这个问题:
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
为粗略的例子道歉,我显然会修改和清理我的结尾,但如果其他人觉得它有用,我想给出答案。
推荐阅读
- ios - CKQuery Perform 仅获取在应用程序启动之前创建的记录
- continuous-integration - 如何将 Web 应用程序中的文件夹与网站同步?
- php - 从 phpmyadmin 丢失数据库后 php artisan 迁移错误
- python - Python使用super与孙子继承父母和孩子
- python - xlxwriter 和 xlwt 之间的映射
- cassandra - 如何找到导致 Cassandra 服务压力或负载的客户端?
- api - 将微服务内部错误代码组合在一起?
- sql-server - 将包含 select 的 where 子句转换为 Linq
- azure-maps - 用于 azure 地图切换地图视图的文档
- apache-spark - 停止 Spark 会话不会关闭 Metastore mysql 连接