首頁‎ > ‎電子期刊‎ > ‎2008年10月號‎ > ‎

Aspose.Cells元件介紹


前言

在本文中介紹Aspose.Cells,讀者也可參考筆者之前的文章Aspose.Words元件介紹(上)Aspose.Words元件介紹(下)Aspose.BarCode元件介紹;Aspose.Cells元件顧名思意是對應到試算表的功能,可以藉由物件模式操控試算表物件,並將最後的結果產生為Microsoft Excel檔案。

安裝Aspose.Cells元件

Aspose.Cells元件可以由此下載試用版,在安裝好後可以在其安裝目錄找到Aspose.Cells.dll檔案可以於.NET專案當中引用,以筆者而言的目錄是:

 C:\Program Files\Aspose\Aspose.Words\Bin\net2.0\Aspose.Cells.dll
C:\Program Files\Aspose\Aspose.Words\Bin\net1.1\Aspose.Cells.dll
讀者若是只想藉由此文瞭解Aspose.Cells的功能及用法,可以由上述網站下載試用版,但若是想於Smart School當中開發Plugin,讀者建議您可以使用Smart School程式當中所附的版本,才不會在掛Plugin到Smart School時有版本的衝突。

讀者可以在SmartSchool客服網的首頁右上方下載Smart School檔案,在解開之後可以先執行ischool.exe檔案來檢查是否有新版,在確認為最新版後可以在其下kernal目錄找到Aspose.Cells.dll元件,然後再依下列方式來加入至專案當中。

步驟一:於專案中點選Add Reference

步驟二:選取Aspose.Word元件


步驟三:於程式碼中引用Aspose.Word元件


步驟四:編譯是否成功引用


建立Workbook物件

接下來我們用範例的方式,由淺入深來介紹Aspose.Cells的使用方式,首先看到如何建立Workbook;底下筆者列出完整的程式碼供作參考。

 
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
 
namespace AsposeCells
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
 
private void btnCells_Click(object sender, EventArgs e)
{
 
//建立活頁簿物件
Aspose.Cells.Workbook ScoreWorkBook = new Aspose.Cells.Workbook();
 
//利用saveFileDialog物件讓使用者選擇儲存檔案位置及名稱
if (saveFileDialog1.ShowDialog()==System.Windows.Forms.DialogResult.OK )
{
//將活頁簿檔案儲存至檔案位置及名稱
ScoreWorkBook.Save(saveFileDialog1.FileName);
 
//運用Process物件開啟檔案

System.Diagnostics.Process.Start(saveFileDialog1.FileName);
}
}
}
}

建立Worksheet物件

在本小段中分享有了Workbook物件後如何建立Worksheet,有兩種方式一種是直接新增空白Worksheet,另一種方式是複製已存在之Worksheet。

 
private void btnCells_Click(object sender, EventArgs e)
{
 
Aspose.Cells.Workbook ScoreWorkBook = new Aspose.Cells.Workbook();
 
ScoreWorkBook.Worksheets[0].Name = "Test01";
 
//新增空白活頁簿
ScoreWorkBook.Worksheets.Add();
 
//複製第一個活頁簿
ScoreWorkBook.Worksheets.AddCopy(0);
 
if (saveFileDialog1.ShowDialog()==System.Windows.Forms.DialogResult.OK )
{
 
ScoreWorkBook.Save(saveFileDialog1.FileName);
 
System.Diagnostics.Process.Start(saveFileDialog1.FileName);
}
}


填入Worksheet值

我們在有了Workbook及Worksheet的觀念後,接下來要在Worksheet當中填入值,我們可以運用在Worksheet中的
Cells物件方法來放值;Cells的物件存取第一個值為列,第二個值為行,然後可用PutValue方法放實際的值,PutValue方法共有七種形
式來放不同型態的值,讀者可在出現程式碼提示時選取。


 
private void btnCells_Click(object sender, EventArgs e)
{
 
Aspose.Cells.Workbook ScoreWorkBook = new Aspose.Cells.Workbook();
 
ScoreWorkBook.Worksheets[0].Name = "Test01";
 
//運用Worksheet的Cells物件PutValue方法來放值
ScoreWorkBook.Worksheets[0].Cells[0, 0].PutValue("test");
 
if (saveFileDialog1.ShowDialog()==System.Windows.Forms.DialogResult.OK )
{
 
ScoreWorkBook.Save(saveFileDialog1.FileName);
 
System.Diagnostics.Process.Start(saveFileDialog1.FileName);
}
}

運用樣版

在會了基本的Aspose.Cells的操作後,若是要在其中劃複雜的樣式,以及相當繁雜的值,運用程式會相當的困難;筆者會建議用樣版的方式將固定的文字及樣式先行在Excel中打好後然後在程式當中填入從資料庫所取出的值。

樣版的使用相當簡單,但是卻是相當重要的一部份,相信會運用Aspose.Cells元件的程式設計師大多是從資料庫當中存取資料放置到試算表當中,所以專注於資料庫資料的轉換是非常重要的,一些固定的文字及樣式就先在樣版當中做好。

Aspose.Cells所使用的樣版就是Excel的樣版,而Excel樣版也就是一般的Excel檔案但是存成xlt的副檔案;底下以圖解的方式來說明。

步驟一:編輯樣版

首先我們開啟Excel來編輯樣版,先開啟一般新的xls檔案即可。

步驟二:存成樣版格式(xlt)


步驟三:運用Aspose.Cells元件引用樣版

要引用樣版,只需要在建立Workbook物件後,再用Open方法開啟樣版即可,這樣Workbook內即會引用樣版內容。

 
private void btnCells_Click(object sender, EventArgs e)
{
 
Aspose.Cells.Workbook ScoreWorkBook = new Aspose.Cells.Workbook();
 
ScoreWorkBook.Open(Application.StartupPath + "\\樣版.xlt");
 
if (saveFileDialog1.ShowDialog()==System.Windows.Forms.DialogResult.OK )
{
 
ScoreWorkBook.Save(saveFileDialog1.FileName);
 
System.Diagnostics.Process.Start(saveFileDialog1.FileName);
}
}

複製區塊

我們常會有需求需要設定區塊的樣式或是複製區塊,此時我們可以用Range物件來達成;以下的程式碼會複製0至16列的區塊到17至33列。

仔細檢視一下Range物件,發覺要建立它是由Cells物件的CreateRange所產生,而CreateRange方法最常用的為第二種及第三種方法。


  • 第二種方法:先看到最後一個參數isVertical,若是為true則firstIndex代表起始欄,而number則代表欄數;若為false則firstIndex代表起始列,而number則代表列數。


  • 第三種方法:第一個參數為起始列而第三個參數為自起始列開始算的列數、第二個參數為起始欄而第四個參數為自起始欄開始算的欄數。


 
private void btnCells_Click(object sender, EventArgs e)
{
 
Aspose.Cells.Workbook ScoreWorkBook = new Aspose.Cells.Workbook();
 
ScoreWorkBook.Open(Application.StartupPath + "\\樣版.xlt");
 
Aspose.Cells.Range MyRange = ScoreWorkBook.Worksheets[0].Cells.CreateRange(0, 16, false);
 
//運用Range的Copy方法將另一個Range的內容複製
ScoreWorkBook.Worksheets[0].Cells.CreateRange(17,33,false).Copy(MyRange);
 
if (saveFileDialog1.ShowDialog()==System.Windows.Forms.DialogResult.OK )
{
 
ScoreWorkBook.Save(saveFileDialog1.FileName);
 
System.Diagnostics.Process.Start(saveFileDialog1.FileName);
}
}


分頁符號

在列印多筆資料如學生成績證明單時,需要將每筆資料後面加上分頁符號,此時我們可以運用Worksheet的HPageBreaks物件來加入水平分頁符號,或是利用VPageBreaks物件來加入垂直分頁符號。

 
private void btnCells_Click(object sender, EventArgs e)
{
 
Aspose.Cells.Workbook ScoreWorkBook = new Aspose.Cells.Workbook();
 
ScoreWorkBook.Open(Application.StartupPath + "\\樣版.xlt");
 
Aspose.Cells.Range MyRange = ScoreWorkBook.Worksheets[0].Cells.CreateRange(0, 16, false);
 
ScoreWorkBook.Worksheets[0].HPageBreaks.Add(16, 0);
 
ScoreWorkBook.Worksheets[0].Cells.CreateRange(17,33,false).Copy(MyRange);
 
if (saveFileDialog1.ShowDialog()==System.Windows.Forms.DialogResult.OK )
{
 
ScoreWorkBook.Save(saveFileDialog1.FileName);
 
System.Diagnostics.Process.Start(saveFileDialog1.FileName);
}
}

Comments