2012-04-01 10 views
-1

.xlsファイルを編集してグラフを描き、画像として保存する必要があります。私は私が必要なものすべてを行うことができますが、ライセンスはあまりにも高価であるmanage with excel#

  • Aspose .Cells::私は、現時点では2つのツールを見つけました。

  • epplus:画像ファイルに描画チャートを保存できません。

私の質問は:私が探しているものを行うが、他のライブラリはですか?

+0

Microsoft.Office.Interop.Excel名前空間を使用するのはかなり良い方法です。なぜあなたは何か他のものを探していますか? –

+1

COM相互運用機能は、管理して操作するのが簡単ではありません。また、サーバー環境にも推奨されていません。 –

答えて

0

Spireという優れたライブラリを使用しています。 私はドローチャートを保存できると思いますが、決してチェックしません。

threadをご覧ください。一部のライブラリには関連付けられていません。 ちょうどinteropを使用しています。

+0

それは可能ではありません:[参照](http://www.e-iceblue.com/forum/viewtopic.php?f=4&t=2483) – Marco

+0

回答が更新されました。上記を参照してください –

+0

ありがとうございます、.NET用のSpreadsheetGearは必要なものですが、無料ではありません:(しかし!ライセンスは安価ですAsplse .Cells! – Marco

1

スプレッドシートギアは地獄のようにすばらしいです。しかし、あなたはあなたが以下のCOM参照「Microsoft.Office.Core」と「Microsoft.Office.Interopを追加した後、これらを含めることができ

using Microsoft.Office.Core; 
using Excel = Microsoft.Office.Interop.Excel; 

次の名前空間を使用しない理由無料のソリューションを、必要な場合.Excel '。 「グラフの施設が

[InterfaceTypeAttribute()] 
[GuidAttribute("0002086D-0000-0000-C000-000000000046")] 
public interface Charts : IEnumerable 

を使用して公開することができます

など「するSystem.Reflection」を使用してあなたがして、グラフィックスなど、Excelの機能の多くを公開することができますすることは具体的な詳細について MSDNを参照してください。しかし、基本的なプロット

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ファイルになるの単純な例が行われ、同様の方法です。詳細については、this MSDN postを参照してください。

こちらがお役に立てば幸いです。

+1

問題は、Officeがこれらの機能を使用する必要があります。私はOfficeをインストールすることができなかったので、問題です。 – Marco

+0

私は参照してください...ミスの方向性のためのappologies。 – MoonKnight