SpreadsheetGear 非常棒,而且速度极快。但是,如果您想要一个免费的解决方案,为什么不使用以下命名空间
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
请参阅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 了解更多信息。
我希望这会有所帮助。