Excel生成報表之解決方案--設置多個單元格區域的格式


上一篇http://www.cnblogs.com/happyfish78/archive/2012/11/06/2756396.html講述如何設置單個單元格格式。

在實際中使用過程中可能更多的需要設置多個單元格格式。其中又可分為連續多個單元格和不連續的單元格。

一.設置連續多個單元格格式
首先看下已經設置好的效果圖:

1、微軟Excel中設置多個連續單元格

a.首先在指定單元格區域設置值。
b.填寫好單元格值后,選中這些單元格區域,鼠標右鍵選擇"單元格格式"。
c.在彈出的窗口中分別選擇字體選項(設置字體名稱、大小、粗體和顏色)、數值選項(設置要顯示的數據格式)和邊框選項(設置邊框樣式和顏色)。
詳見http://www.cnblogs.com/happyfish78/archive/2012/11/06/2756396.html
d.設置好后點擊確定按鈕,就能在Excel中看到對連續多個單元格格式設置的效果圖。

2、用Acey.ExcelX代碼實現

//導入命名空間。
using Acey.ExcelX;

View Code
 1         /// <summary>
 2         /// 這個例子展示如何設置連續單元格區域的格式。
 3      /// </summary>
 4         public void Sample()
 5         {
 6             //創建工作薄對象。
 7             IWorkbook workbook = ExcelxApplication.CreateWorkbook();
 8             //獲取指定索引處的工作表對象。
 9             IWorksheet worksheet = workbook.Worksheets[0];
10             //初始化二維數組。
11             object[,] array = { { 10, 50 }, { 20, 60 }, { 30, 80 } };
12             //導入二維數組的數據到工作表指定的開始位置。
13             worksheet.ImportArray(array, 2, 2);
14             //創建指定范圍的單元格區域。
15             IRange range = worksheet.Cells.CreateRange("C3:D5");
16             //設置該單元格區域的字體屬性。
17             range.CellFormat.Font.Name = "宋體";
18             range.CellFormat.Font.Bold = true;
19             range.CellFormat.Font.Size = 16;
20             range.CellFormat.Font.Color = Color.Blue;
21             //設置該單元格區域的數據格式。
22             range.CellFormat.NumberFormat = "0.00";
23             //設置該單元格區域的邊框樣式和顏色。
24             range.SetBorders(BorderMembers.All, LineStyle.Double, Color.Red);
25 
26             //保存該工作薄為指定類型。
27             workbook.SaveAs(@"d:\book1.xls", FileFormat.Excel97To2003);
28         }

這里導入數據使用方法 worksheet.ImportArray(array, 2, 2);導入二維數組的數據到工作表指定的開始位置,簡化了一個單元格數據的填寫工作。
對連續的多個單元格,我們首先創建了單元格區域對象IRange range = worksheet.Cells.CreateRange("C3:D5");。創建了這個對象后我們可以對

這個單元格區域的格式進行設置,如:range.CellFormat.Font.Name = "宋體";對單元格區域設置字體,就會對單元格區域中所包含的每個單元格進行設置

字體的操作。簡化了要對每個單元格格式進行設置的工作。

 

二、設置不連續的多個單元格格式。
如果遇到要設置的單元格不連續,但是它們卻又相同的格式。見圖:

 

1、微軟Excel中設置多個不連續單元格
a.第一種方法:按住Ctrl鍵,對要設置的單元格進行選中,選好多個單元格后,點擊鼠標右鍵選擇"單元格格式",進行字體、數值和邊框的配置即可。
b.第二種方法:首先設置其中一個單元格的格式,然后用Excel的格式刷,復制該單元格的格式並應用到其他單元格中。

2、用Acey.ExcelX代碼實現

//導入命名空間。
using Acey.ExcelX;

View Code
 1        /// <summary>
 2        ///  這個例子展示如何設置不連續單元格區域的格式(不連續區域有相同的格式)。
 3      /// </summary>
 4         public void Sample()
 5         {
 6             //創建工作薄對象。
 7             IWorkbook workbook = ExcelxApplication.CreateWorkbook();
 8             //獲取指定索引處的工作表對象。
 9             IWorksheet worksheet = workbook.Worksheets[0];
10             //獲取指定名稱的單元格對象。
11             ICell cell = worksheet.Cells["C3"];
12             //設置單元格值。
13             cell.Value = 10;
14             //設置單元格格式的字體屬性。
15             cell.CellFormat.Font.Name = "宋體";
16             cell.CellFormat.Font.Size = 16;
17             cell.CellFormat.Font.Bold = true;
18             cell.CellFormat.Font.Color = Color.Blue;
19 
20             //設置單元格格式的數據格式。
21             cell.CellFormat.NumberFormat = "0.00";
22             //設置單元格格式的邊框樣式和顏色。
23             cell.SetBorders(BorderMembers.All, LineStyle.Double, Color.Red);
24 
25             ICell destCell = worksheet.Cells["D4"];
26             destCell.Value = 20;
27             //只復制指定單元格對象的格式。
28             destCell.CopyFormat(cell);
29 
30             destCell = worksheet.Cells["F6"];
31             destCell.Value = 30;
32             //只復制指定單元格對象的格式。
33             destCell.CopyFormat(cell);
34 
35             //保存該工作薄為指定類型。
36             workbook.SaveAs(@"d:\book1.xls", FileFormat.Excel97To2003);
37         }

代碼實現了Excel中第二種方法,首先設置其中一個單元格的格式,對另外單元格格式設置用方法:destCell.CopyFormat(cell);該方法只復制指定單元格對象的格式。如果既要復制數據又要復制格式,可以用Copy的方法。用destCell.CopyFormat(cell);方法簡化對每個單元格分別進行重復的格式設置。

 

三、總結

無需安裝微軟Excel,用代碼也能很輕松實現單元格格式效果。 下載最新版本到www.aceyoffice.com。如果您想對Acey.ExcelX有進一步了解,在網站下載幫助和Demo。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM