iT邦幫忙

0

【Aspose系列】Aspose.Cells (2) - Worksheet

  • 分享至 

  • twitterImage
  •  

上一篇中我們成功取得 Workbook、WorksheetCollection 後,接著我們可以透過 Worksheet:

  1. 取得/設定 Worksheet 的各項資訊,如:背景、隱藏工作表、顯示尺標、顯示大綱等
  2. 取得其他功能的 Collection,如:圖表、資料驗證、樞紐分析、嵌入外部檔案等

取得 Worksheet

上篇中介紹了 Worksheet 有三個參數(index、sheetName、sheetType),在取得 Worksheet 時,我們可以利用 index 或 sheetName 來取得特定的 Worksheet 物件,或是使用 for 遍歷所有 Worksheet,如下例。

Workbook workbook = new Workbook("file.xls");
WorksheetCollection sheets = workbook.getWorksheets();

// 根據 index、sheetName 取得特定 Worksheet 物件
Worksheet sheet1 = sheets.get(index);
Worksheet sheet2 = sheets.get(sheetName);

// 使用 for 遍歷所有 Worksheet
for(int i = 0; i < worksheets.getCount(); i++) {
    Worksheet sheet = sheets.get(i);
}

Worksheet

成功取得 Worksheet 後,接著我們可以設定 Worksheet 的默認參數,或取得 Worksheet 底下的其他 Collection。

Worksheet Property

取得 Worksheet 資訊

getter setter 說明
(String)getName() setName(String) sheetName,使用者設定的名稱
(String)getCodeName() setCodeName(String) 系統中的 sheetName,預設為:Sheet1、Sheet2、...
(String)getUniqueId() setUniqueId(String) sheet 的唯一值,範例:{07e90875-9ec9-48fb-9fbc-3a02eaea8f85}
(int)getIndex() 這個 sheet 在 WorksheetCollection 中排第幾個(0,1,2,...)
(int)getTabId() setTabId 這個 sheet 排在第幾個(1,2,3,...)
(int)getType() setType(int) 這個 sheet 的 SheetType
(boolean)hasAutofilter() 是否含有篩選器
(boolean)isProtected() 是否被保護
(int)getFirstVisibleColumn() setFirstVisibleColumn(int) 取得第一個可見行
(int)getFirstVisibleRow() setFirstVisibleRow(int) 取得第一個可見列

Worksheet 顯示設定:

getter setter 說明
(byte[])getBackgroundImage() setBackgroundImage(byte[]) 設定背景圖片
setBackground(byte[]) 設定背景
(aspose.cells.Color)getTabColor() setTabColor(aspose.cells.Color) 工作表標籤顏色設定
(boolean)getDisplayRightToLeft setDisplayRightToLeft(boolean) sheet 是否由右往左顯示,預設為false
(boolean)isVisible() setVisible(boolean) sheet 是否可見。false 為隱藏 sheet
(int)getVisibilityType() setVisibilityType(int) VisibilityType,選項:HIDDEN(1):隱藏,使用者可取消隱藏、VERY_HIDDEN(2):隱藏,只能透過程式改為可見、VISIBLE(3):可見
// 可見
worksheets.get(3).setVisible(true);
worksheets.get(7).setVisibilityType(com.aspose.cells.VisibilityType.VISIBLE);
// 隱藏
worksheets.get(4).setVisible(false);
worksheets.get(5).setVisibilityType(com.aspose.cells.VisibilityType.HIDDEN);
// 隱藏,使用者不可取消隱藏,僅可透過程式取消隱藏
worksheets.get(6).setVisibilityType(com.aspose.cells.VisibilityType.VERY_HIDDEN);

檢視設定:

getter setter 說明
(boolean)isRowColumnHeadersVisible() setRowColumnHeadersVisible(boolean) 是否凍結頂端列
(int)getPaneState() 回傳窗格狀態 PaneStateType,FROZEN(0)、FROZEN_SPLIT(1)、SPLIT(2)、NORMAL(3)
// 凍結頂端列
sheet.setRowColumnHeadersVisible(true);
System.out.println(sheet.getPaneState()); //0
// 取消凍結首端列
sheet.setRowColumnHeadersVisible(false);
System.out.println(sheet.getPaneState()); //3

進階設定

getter setter 說明
(boolean)isRulerVisible() setRulerVisible(boolean) 是否顯示尺規
(boolean)isOutlineShown() setOutlineShown(boolean) 是否顯示大綱
(boolean)getDisplayZeros() setDisplayZeros(boolean) 當 cell 的值為零時,是否顯示
(int)getZoom() setZoom(int) 顯示比例,輸入值應於100~400之間
(boolean)isPageBreakPreview() setPageBreakPreview(boolean) 是否使用分頁預覽顯示,預設為false
(int)getViewType() setViewType(int) 檢視方式 ViewType3種模式圖片說明,選項:標準模式 NORMAL_VIEW(0)、分頁預覽 PAGE_BREAK_PREVIEW(1)、整頁模式 PAGE_LAYOUT_VIEW(2)
// 標準模式
worksheets.get(0).setPageBreakPreview(false);
worksheets.get(1).setViewType(com.aspose.cells.ViewType.NORMAL_VIEW);
// 分頁預覽
worksheets.get(0).setPageBreakPreview(true);
worksheets.get(1).setViewType(com.aspose.cells.ViewType.PAGE_BREAK_PREVIEW);
// 整頁模式
worksheets.get(2).setViewType(com.aspose.cells.ViewType.PAGE_LAYOUT_VIEW);

https://ithelp.ithome.com.tw/upload/images/20210711/20129826FHAzvYiJRr.jpg

相容性設定:

getter setter 說明
(boolean)getTransitionEntry() getTransitionEntry(boolean) Lotus 相容性設定以相容模式開啟 Lotus
(boolean)getTransitionEvaluation() getTransitionEvaluation(boolean) Lotus 相容性設定將 Lotus 公式轉換為 Excel 公式

取得 Collection

常用功能區

物件 getter 說明
Cells getCells() 取得所有欄位
ConditionalFormattingCollection getConditionalFormattings() 設定格式化的條件
AutoFilter getAutoFilter() 篩選器

插入功能區

物件 getter 說明
ListObjectCollection getListObjects() 表格
PivotTableCollection getPivotTables() 樞紐分析
PictureCollection getPictures() 圖片
ShapeCollection getShapes() 圖片、手繪多邊形、文字藝術師等
ChartCollection getCharts() 圖表
SparklineGroupCollection getSparklineGroupCollection() 走勢圖
SlicerCollection getSlicers() 交叉分析篩選器
TextBoxCollection getTextBoxes() 文字方塊
HyperlinkCollection getHyperlinks() 超連結
OleObjectCollection getOleObjects() 嵌入檔案,如:word等,使用範例

頁面配置功能區

物件 getter 說明
HorizontalPageBreakCollection getHorizontalPageBreaks() 水平分頁符號
VerticalPageBreakCollection getVerticalPageBreaks() 垂直分頁符號

公式功能區

物件 getter 說明
ErrorCheckOptionCollection getErrorCheckOptions() 錯誤檢查
CellWatchCollection getCellWatches() 監視窗口

資料功能區

物件 getter 說明
QueryTableCollection getQueryTables() 查詢
ValidationCollection getValidations() 資料驗證
ScenarioCollection getScenarios() 模擬分析、分析藍本管理員

校閱功能區

  • 保護活頁簿功能,確定會在後續開一篇文章介紹。
物件 getter 說明
CommentCollection getComments() 註解
Protection getProtection() 保護活頁簿、權限設定、密碼設定
ProtectedRangeCollection getAllowEditRanges() 保護活頁簿(允許編輯範圍)

開發人員功能區

物件 getter 說明
CheckBoxCollection getCheckBoxes() 核取方塊

檔案功能區

物件 getter 說明
CustomPropertyCollection getCustomProperties() 進階摘要資訊
SmartTagSetting getSmartTagSetting() 智慧標籤 Smart Tag校訂-自動校正

透過這次整理才驚覺 Excel 的功能這麼多,也見識到 aspose 這個工具的強大,希望這個總整理可以幫助您快速找到需要的物件。其中的一些物件也會出現在以後的文章中,並實際使用給您參考,敬請期待。

下一次要介紹的是 Cells,其中包含資料輸出等,感謝您的閱讀!


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言