資料
《Excelize 權威指南》圖書出版,網路購買方式:人民郵電出版社 | 異步社區 | 天貓 | 京東 | 當當 | 亞馬遜 | 微店 | 抖音
添加資料驗證
func (f *File) AddDataValidation(sheet string, dv *DataValidation)
根據給定的工作表名和資料驗證對象設定資料驗證規則,資料驗證對象可透過 NewDataValidation 函式創建,資料驗證類別和條件參考常量中的定義。
例1,為 Sheet1!A1:B2 設定包含驗證條件為允許介於整數 10 到 20 的資料驗證規則,輸入無效資料時顯示出錯警告,標題為: "error title",錯誤信息 "error body":

dv := excelize.NewDataValidation(true)
dv.SetSqref("A1:B2")
dv.SetRange(10, 20, excelize.DataValidationTypeWhole, excelize.DataValidationOperatorBetween)
dv.SetError(excelize.DataValidationErrorStyleStop, "error title", "error body")
f.AddDataValidation("Sheet1", dv)
例2,為 Sheet1!A3:B4 設定包含驗證條件為允許大於整數 10 的資料驗證規則,選定儲存格時顯示輸入信息,輸入信息為: "input body":

dv = excelize.NewDataValidation(true)
dv.SetSqref("A3:B4")
dv.SetRange(10, 20, excelize.DataValidationTypeWhole, excelize.DataValidationOperatorGreaterThan)
dv.SetInput("input title", "input body")
f.AddDataValidation("Sheet1", dv)
例3,為 Sheet1!A5:B6 設定驗證條件為序列的資料驗證規則,略過空值並提供下拉箭頭:

dv = excelize.NewDataValidation(true)
dv.SetSqref("A5:B6")
dv.SetDropList([]string{"1", "2", "3"})
f.AddDataValidation("Sheet1", dv)
如果您在序列中設定的項目超過限制累計 255 個字符的限制,請使用另一種方式設定:在工作表儲存格中設定允許的值,並使用 SetSqrefDropList 函式設定序列中引用儲存格的範圍。
例4,為 Sheet1!A7:B8 設定以 Sheet1!E1:E3 為來源的驗證條件,略過空值並提供下拉箭頭:

dv := excelize.NewDataValidation(true)
dv.SetSqref("A7:B8")
dv.SetSqrefDropList("E1:E3")
f.AddDataValidation("Sheet1", dv)
資料驗證下拉列表中顯示的項目數量有限制:該列表最多可以顯示 32768 個項目。如果您需要更多項目,可以透過級聯列表將項目分類。
獲取資料驗證
func (f *File) GetDataValidations(sheet string) ([]*DataValidation, error)
根據給定的工作表名獲取改工作表中全部資料驗證區域和資料驗證規則。
刪除資料驗證
func (f *File) DeleteDataValidation(sheet string, sqref ...string) error
根據給定的工作表名和資料驗證區域刪除資料驗證規則。若未指定資料驗證區域,將刪除給定工作表中全部資料驗證區規則。
添加交叉分析篩選器
SlicerOptions 定義了交叉分析篩選器的屬性。
type SlicerOptions struct {
Name string
Cell string
TableSheet string
TableName string
Caption string
Macro string
Width uint
Height uint
DisplayHeader *bool
ItemDesc bool
Format GraphicOptions
SelectedItems []string
}
Name 為必選參數,用於設定交叉分析篩選器的名稱,必須是工作表中已有表格或樞紐分析表中欄位名稱。
Cell 為必選參數,用於設定交叉分析篩選器左上角儲存格坐標位置。
TableSheet 為必選參數,用於設定交叉分析篩選器關聯的工作表名稱。
TableName 為必選參數,用於設定交叉分析篩選器關聯的表格或樞紐分析表名稱。
Caption 為可選參數,用於設定交叉分析篩選器的標題。
Macro 為可選參數,用於為交叉分析篩選器設定巨集。當使用該參數設定時,存儲活頁簿時的文件擴展名應為 .xlsm 或者 .xltm。
Width 為可選參數,用於為設定交叉分析篩選器的寬度。
Height 為可選參數,用於為設定交叉分析篩選器的高度。
DisplayHeader 為可選參數,用於設定是否顯示交叉分析篩選器的頁首,默認顯示交叉分析篩選器的頁首。
ItemDesc 為可選參數,用於設定使用遞減 (Z-A) 為交叉分析篩選器項目排序,默認設定為 false(表示使用遞增)。
Format 為可選參數,用於設定交叉分析篩選器的格式(大小和屬性)。
SelectedItems 為可選參數,用於指定交叉分析篩選器中的默認選中項。目前,該選項僅支持在樞紐分析表中交叉分析篩選器中使用,並且選中項必須位於樞紐分析表中已選中項的範圍內。如果樞紐分析表是使用 AddPivotTable 函式創建的,則在創建樞紐分析表時,也必須為同一字段指定選中項範圍。
func (f *File) AddSlicer(sheet string, opts *SlicerOptions) error
透過給定的工作表名稱和交叉分析篩選器設定,在工作表中添加交叉分析篩選器。例如,在 Sheet1!E1 儲存格中,為表格 Table1 名為 Column1 的列添加交叉分析篩選器:
err := f.AddSlicer("Sheet1", &excelize.SlicerOptions{
Name: "Column1",
Cell: "E1",
TableSheet: "Sheet1",
TableName: "Table1",
Caption: "Column1",
Width: 200,
Height: 200,
})
獲取交叉分析篩選器
func (f *File) GetSlicers(sheet string) ([]SlicerOptions, error)
透過給定的工作表名稱獲取指定工作表中的全部交叉分析篩選器。注意,該函式目前尚未支援獲取交叉分析篩選器的高度、寬度和圖形屬性。
刪除交叉分析篩選器
func (f *File) DeleteSlicer(name string) error
根據給定的交叉分析篩選器名稱刪除指定交叉分析篩選器。