天天看點

使用Free Spire.XLS插入圖表

使用Free Spire.XLS插入圖表

前言

最近在研究Office中間件,上網搜尋了下,比較出名的有兩個:Aspose和Spire,兩者功能齊全,對Office的支援趨近完善,但售價不菲。仔細搜尋下,發現Spire系列還有免費版的産品,相對商業版本,在性能和檔案轉換功能上有縮水。通過一段時間的使用後,我發現免費版本能夠滿足我的大部分需求。是以寫下這篇文章,和大家分享一下我的使用心得,這裡我使用的是Free Spire.XLS,根據文中中的資料插入圖表并儲存。

準備

首先從CodePlex(https://freenetexcel.codeplex.com/)上下載下傳Free Spire.XLS,然後引用Spire.License.dll和Spire.XLS.dll到工程中,如下圖所示:

使用Free Spire.XLS插入圖表

步驟

1.載入一個現有的Excel文檔,裡面已經包含生成圖表所需的資料。

使用Free Spire.XLS插入圖表

Workbook wb = new Workbook();

wb.LoadFromFile("Test.xlsx", ExcelVersion.Version2010);

Worksheet ws = wb.Worksheets[0];

2.建立一個條形圖表,并設定圖表的資料區域和位置。

//Create a coulumn clustered chart

Chart chart = ws.Charts.Add(ExcelChartType.ColumnClustered);

//Set region of chart data

chart.DataRange = ws.Range["A1:C5"];

chart.SeriesDataFromRange = false;

//Set position of chart

chart.LeftColumn = 1;

chart.TopRow = 7;

chart.RightColumn = 11;

chart.BottomRow = 30;

3. 設定圖表标題格式以及兩條坐标軸的格式。

//Chart title

chart.ChartTitle = "Sales market by country";

chart.ChartTitleArea.IsBold = true;

chart.ChartTitleArea.Size = 12;

//Chart primary category axis

chart.PrimaryCategoryAxis.Title = "Country";

chart.PrimaryCategoryAxis.Font.IsBold = true;

chart.PrimaryCategoryAxis.TitleArea.IsBold = true;

//Chart primary value axis

chart.PrimaryValueAxis.Title = "Sales(in Dollars)";

chart.PrimaryValueAxis.HasMajorGridLines = false;

chart.PrimaryValueAxis.MinValue = 1000;

chart.PrimaryValueAxis.TitleArea.IsBold = true;

chart.PrimaryValueAxis.TitleArea.TextRotationAngle = -90;

4. 顯示資料标簽,并将位置設定為“居中”。

//Format data labels

foreach (ChartSerie cs in chart.Series)

{

    cs.Format.Options.IsVaryColor = true;

    cs.DataPoints.DefaultDataPoint.DataLabels.HasValue = true;

    cs.DataPoints.DefaultDataPoint.DataLabels.Position = DataLabelPositionType.Center;

}

5. 設定圖例位置為“底部”,然後儲存檔案到磁盤。

chart.Legend.Position = LegendPositionType.Bottom;

wb.SaveToFile("Sample.xlsx",ExcelVersion.Version2010);

生成的Excel文檔如下圖所示:

使用Free Spire.XLS插入圖表

總結

網上不乏第三方操作excel的元件,Free Spire.XLS的優勢在于免費易用,功能齊全,但最多隻能處理5個工作簿,每個工作簿最多150行資料,這些是免費版本的限制。不過對于我來說已經足夠了。