是否有可能在powerpoint中导出使用highcharts完成的图表?否则有人可以帮助我找到解决方案吗?
由于
答案 0 :(得分:1)
只需将其导出到图像(PNG或JPG)并将该图像添加到powerpoint幻灯片中?大多数highcharts图表在图表的右上角都有一个下载(导出)按钮。
答案 1 :(得分:0)
我知道这已经过时但我正在努力实现同样的目标。 如果您乐意使用png或jpg,那么我会选择phantonJS(OpenQA.Selenium.PhantomJS)来提取svg然后转换为png / jpg的任何转换机制
public IList<string> ExtractSVGs(string htmlFilePath)
{
IList<string> SVGs = new List<string>();
foreach (string chart in getChartIds(htmlFilePath))
{
SVGs.Add(ExtractSVG(htmlFilePath, chart));
}
return SVGs;
}
private IList<string> getChartIds(string htmlFilePath)
{
IList<string> chartIds = new List<string>();
string whatToFind = @" ""renderTo"": """;
foreach (string line in (System.IO.File.ReadLines(htmlFilePath)))
{
if (line.StartsWith(whatToFind))
chartIds.Add("chart" + line.Substring(line.IndexOf(whatToFind) + whatToFind.Length, 32));
}
return chartIds;
}
private string ExtractSVG(string htmlFilePath, string chartId)
{
var driverService = PhantomJSDriverService.CreateDefaultService();
driverService.HideCommandPromptWindow = true;
driverService.LoadImages = true;
driverService.ProxyType = "none";
driverService.LocalToRemoteUrlAccess = true;
driverService.WebSecurity = false; // may not be necessary
using (var driver = new PhantomJSDriver(driverService))
{
driver.Navigate().GoToUrl(new Uri("file:///" + htmlFilePath));
string svg = (string)driver.ExecuteScript(String.Format("return {0}.getSVG();", chartId), null);
driver.Close();
return svg;
}
}
您可以将JS更改为直接导出到png,但这需要链接到导出服务器(或者在本地运行该代码)。
另外,您可能需要根据构建html文件的方式更改要查找的内容。