Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.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# 用c语言管理excel#_C#_Excel_Charts - Fatal编程技术网

C# 用c语言管理excel#

C# 用c语言管理excel#,c#,excel,charts,C#,Excel,Charts,我需要编辑.xls文件,绘制图表并将其保存为图像。目前我发现了两个工具: 我可以做我需要的一切,但是许可证太贵了 我无法将已绘制的图表保存在图像文件中 我的问题是:还有其他库可以满足我的需求吗?我正在与名为的卓越库合作。 我认为它可以保存绘图图表,但我从未检查过它 请看以下内容,它与某些图书馆无关, 只需使用互操作。电子表格工具非常棒,速度非常快。但是,如果您想要一个免费的解决方案,为什么不使用以下名称空间呢 using Microsoft.Office.Core; using Excel

我需要编辑.xls文件,绘制图表并将其保存为图像。目前我发现了两个工具:

  • 我可以做我需要的一切,但是许可证太贵了

  • 我无法将已绘制的图表保存在图像文件中


我的问题是:还有其他库可以满足我的需求吗?

我正在与名为的卓越库合作。 我认为它可以保存绘图图表,但我从未检查过它

请看以下内容,它与某些图书馆无关,
只需使用互操作。

电子表格工具非常棒,速度非常快。但是,如果您想要一个免费的解决方案,为什么不使用以下名称空间呢

using Microsoft.Office.Core;
using Excel = Microsoft.Office.Interop.Excel;
添加以下COM引用“Microsoft.Office.Core”和“Microsoft.Office.Interop.Excel”后,可以包括这些引用。使用“System.Reflection”,您可以公开Excel的许多功能,包括图形等

可以使用

[InterfaceTypeAttribute()]
[GuidAttribute("0002086D-0000-0000-C000-000000000046")]
public interface Charts : IEnumerable
有关具体详细信息,请参阅。但基本情节的一个简单例子是

using Microsoft.Office.Interop.Excel;

class Program
{
    const string fileName = "C:\\Book1.xlsx";
    const string topLeft = "A1";
    const string bottomRight = "A4";
    const string graphTitle = "Graph Title";
    const string xAxis = "Time";
    const string yAxis = "Value";

    static void Main()
    {
        // Open Excel and get first worksheet. 
        var application = new Application();
        var workbook = application.Workbooks.Open(fileName);
        var worksheet = workbook.Worksheets[1] as 
            Microsoft.Office.Interop.Excel.Worksheet;

        // Add chart.
        var charts = worksheet.ChartObjects() as 
            Microsoft.Office.Interop.Excel.ChartObjects;
        var chartObject = charts.Add(60, 10, 300, 300) as 
            Microsoft.Office.Interop.Excel.ChartObject;
        var chart = chartObject.Chart;

        // Set chart range.
        var range = worksheet.get_Range(topLeft, bottomRight);
        chart.SetSourceData(range);

        // Set chart properties.
        chart.ChartType = Microsoft.Office.Interop.Excel.XlChartType.xlLine;
        chart.ChartWizard(Source: range, Title: graphTitle, CategoryTitle: xAxis, 
            ValueTitle: yAxis);

        // Save.
        workbook.Save();

        // Dispose objects.
        worksheet.Dispose();
        workbook.Dispose();
        application.Dispose();
    }
}
编辑Excel文件也是一种类似的方式。有关更多信息,请参阅


我希望这能有所帮助。

不可能:答案已更新。请看上面谢谢,SpreadsheetGear for.NET似乎是我需要的,但它不是免费的:(!但是,该许可证比Asopse.Cells更便宜!使用Microsoft.Office.Interop.Excel命名空间是一种非常好的方法。为什么要寻找其他名称空间?COM Interop不太容易管理和使用。此外,也不建议将其用于服务器环境。问题是Office需要使用这些功能。在我的背景下,这是一个问题,因为我无法安装Office!我看到了……小姐方向的命名。