C#實(shí)現(xiàn)在Excel中插入和操作切片器
切片器(Slicer)是Excel中的一個(gè)強(qiáng)大工具,它提供了直觀且交互式的方式來(lái)過(guò)濾數(shù)據(jù)。通過(guò)切片器,用戶可以輕松選擇數(shù)據(jù)范圍并快速查看特定數(shù)據(jù)。切片器通常與透視表(Pivot Table)或表格(Table)結(jié)合使用,使數(shù)據(jù)分析更加高效。在這篇文章中,我們將探討如何使用C# 實(shí)現(xiàn)在Excel中插入和操作切片器,主要內(nèi)容包含以下幾個(gè)方面:
- C# 在Excel中插入切片器
- 插入切片器到透視表
- 插入切片器到表格
- C# 在Excel中修改切片器
- C# 刪除Excel中的切片器
使用工具
要使用C# 在Excel中插入和操作切片器,需要用到合適的Excel文檔處理庫(kù)。本文所使用的是Spire.XLS for .NET庫(kù)。該庫(kù)主要用于在 .NET 應(yīng)用程序中創(chuàng)建、讀取、編輯、轉(zhuǎn)換 和打印Excel 文檔。
安裝 Spire.XLS for .NET
你可以在 NuGet 包管理器中運(yùn)行以下命令安裝 Spire.XLS for .NET:
PM> Install-Package Spire.XLS
如果你已經(jīng)安裝了該庫(kù)并希望升級(jí)到最新版本,可以使用以下命令:
PM> Update-Package Spire.XLS
C# 在Excel中插入切片器
在 Excel 中,切片器通常與數(shù)據(jù)透視表或表格相關(guān)聯(lián)。下面我們將分別介紹如何將切片器插入到數(shù)據(jù)透視表和表格中。
插入切片器到透視表
在 Spire.XLS 中,可以使用 Worksheet.Slicers.Add(IPivotTable pivot, string destCellName, IPivotField baseField) 方法為數(shù)據(jù)透視表添加切片器,其中:
- IPivotTable pivot 參數(shù)表示要插入切片器的數(shù)據(jù)透視表對(duì)象。
- string destCellName 參數(shù)表示插入切片器的目標(biāo)單元格位置。
- IPivotField baseField 參數(shù)表示數(shù)據(jù)透視表的特定字段,切片器將基于該字段對(duì)數(shù)據(jù)透視表執(zhí)行數(shù)據(jù)篩選。
在添加切片器到透視表時(shí),你可以選擇添加到現(xiàn)有透視表。如果沒(méi)有現(xiàn)有透視表,也可以新建透視表然后為其添加切片器。
新建透視表并為其添加切片器
以下是新建數(shù)據(jù)透視表并為其添加切片器的實(shí)現(xiàn)代碼:
using Spire.Xls;
using Spire.Xls.Core;
using Spire.Xls.Core.Spreadsheet.PivotTables;
namespace InsertSlicers
{
internal class Program
{
static void Main(string[] args)
{
// 創(chuàng)建一個(gè)新的工作簿
Workbook workbook = new Workbook();
// 添加一個(gè)工作表
Worksheet sheet = workbook.Worksheets[0];
// 添加示例數(shù)據(jù)
sheet.Range["A1"].Value = "產(chǎn)品";
sheet.Range["B1"].Value = "一月";
sheet.Range["C1"].Value = "二月";
sheet.Range["D1"].Value = "三月";
sheet.Range["A2"].Value = "產(chǎn)品A";
sheet.Range["B2"].NumberValue = 500;
sheet.Range["C2"].NumberValue = 300;
sheet.Range["D2"].NumberValue = 400;
sheet.Range["A3"].Value = "產(chǎn)品B";
sheet.Range["B3"].NumberValue = 600;
sheet.Range["C3"].NumberValue = 700;
sheet.Range["D3"].NumberValue = 800;
// 添加數(shù)據(jù)透視表
CellRange dataRange = sheet.Range["A1:D3"];
PivotCache cache = workbook.PivotCaches.Add(dataRange);
PivotTable pivotTable = sheet.PivotTables.Add("PivotTable1", sheet.Range["A5"], cache);
// 將字段拖動(dòng)到行區(qū)域
PivotField pivotField = pivotTable.PivotFields["產(chǎn)品"] as PivotField;
pivotField.Axis = AxisTypes.Row;
// 將字段拖動(dòng)到數(shù)據(jù)區(qū)域
pivotTable.DataFields.Add(pivotTable.PivotFields["一月"], "一月總計(jì)", SubtotalTypes.Sum);
pivotTable.DataFields.Add(pivotTable.PivotFields["二月"], "二月總計(jì)", SubtotalTypes.Sum);
pivotTable.DataFields.Add(pivotTable.PivotFields["三月"], "三月總計(jì)", SubtotalTypes.Sum);
// 設(shè)置數(shù)據(jù)透視表的樣式
pivotTable.BuiltInStyle = PivotBuiltInStyles.PivotStyleLight16;
// 刷新數(shù)據(jù)透視表
pivotTable.CalculateData();
// 添加切片器
sheet.Slicers.Add(pivotTable, "F5", pivotField);
// 保存文檔
workbook.SaveToFile("插入切片器到透視表.xlsx", ExcelVersion.Version2013);
workbook.Dispose();
}
}
}
為現(xiàn)有數(shù)據(jù)透視表添加切片器
以下是為現(xiàn)有數(shù)據(jù)透視表添加切片器的實(shí)現(xiàn)代碼:
using Spire.Xls;
using Spire.Xls.Core.Spreadsheet.PivotTables;
namespace InsertSlicers
{
internal class Program
{
static void Main(string[] args)
{
// 加載Excel文件
Workbook workbook = new Workbook();
workbook.LoadFromFile("數(shù)據(jù)透視表.xlsx");
// 獲取第一個(gè)工作表
Worksheet sheet = workbook.Worksheets[0];
// 獲取第一個(gè)數(shù)據(jù)透視表
XlsPivotTable pivotTable = sheet.PivotTables[0] as XlsPivotTable;
// 獲取數(shù)據(jù)透視表的特定字段
PivotField pivotField = pivotTable.PivotFields["產(chǎn)品"] as PivotField;
// 添加切片器
sheet.Slicers.Add(pivotTable, "F5", pivotField);
// 保存文檔
workbook.SaveToFile("插入切片器到現(xiàn)有透視表.xlsx", ExcelVersion.Version2013);
workbook.Dispose();
}
}
}插入切片器到表格
如果要為表格添加切片器,可以使用 Worksheet.Slicers.Add(IListObject table, string destCellName, int index) 方法,其中:
- IListObject table 參數(shù)表示要插入切片器的表格對(duì)象。
- string destCellName 參數(shù)表示插入切片器的目標(biāo)單元格位置。
- int index 參數(shù)表示列的索引,切片器將基于該列對(duì)表格執(zhí)行數(shù)據(jù)篩選。
同樣地,你可以為現(xiàn)有表格添加切片器,也可以新建表格并為其添加切片器。
新建表格并為其添加切片器
以下是新建表格并為其添加切片器的實(shí)現(xiàn)代碼:
using Spire.Xls;
using Spire.Xls.Core;
namespace InsertSlicers
{
internal class Program
{
static void Main(string[] args)
{
// 創(chuàng)建一個(gè)新的工作簿
Workbook workbook = new Workbook();
// 添加一個(gè)工作表
Worksheet sheet = workbook.Worksheets[0];
// 添加示例數(shù)據(jù)
sheet.Range["A1"].Value = "產(chǎn)品";
sheet.Range["B1"].Value = "類(lèi)別";
sheet.Range["C1"].Value = "銷(xiāo)量";
sheet.Range["A2"].Value = "產(chǎn)品A";
sheet.Range["B2"].Value = "電子產(chǎn)品";
sheet.Range["C2"].NumberValue = 500;
sheet.Range["A3"].Value = "產(chǎn)品B";
sheet.Range["B3"].Value = "家電";
sheet.Range["C3"].NumberValue = 600;
sheet.Range["A4"].Value = "產(chǎn)品C";
sheet.Range["B4"].Value = "電子產(chǎn)品";
sheet.Range["C4"].NumberValue = 700;
sheet.Range["A5"].Value = "產(chǎn)品D";
sheet.Range["B5"].Value = "家電";
sheet.Range["C5"].NumberValue = 800;
// 將數(shù)據(jù)轉(zhuǎn)換為表格
CellRange tableRange = sheet.Range["A1:C5"];
IListObject table = sheet.ListObjects.Create("Table1", tableRange);
table.BuiltInTableStyle = TableBuiltInStyles.TableStyleMedium2;
sheet.Slicers.Add(table, "E1", 0);
// 保存文檔
workbook.SaveToFile("新建表格并插入切片器.xlsx", ExcelVersion.Version2013);
workbook.Dispose();
}
}
}
為現(xiàn)有表格添加切片器
以下是為現(xiàn)有表格添加切片器的實(shí)現(xiàn)代碼:
using Spire.Xls;
using Spire.Xls.Core;
namespace InsertSlicers
{
internal class Program
{
static void Main(string[] args)
{
// 加載Excel文件
Workbook workbook = new Workbook();
workbook.LoadFromFile("表格.xlsx");
// 獲取第一個(gè)工作表
Worksheet sheet = workbook.Worksheets[0];
// 獲取第一個(gè)表格
IListObject table = sheet.ListObjects[0];
// 為表格添加切片器
sheet.Slicers.Add(table, "E1", 0);
// 保存文檔
workbook.SaveToFile("為現(xiàn)有表格插入切片器.xlsx", ExcelVersion.Version2013);
workbook.Dispose();
}
}
}C# 在Excel中修改切片器
在某些情況下,你可能需要調(diào)整切片器的外觀、名稱(chēng)或標(biāo)題等屬性??梢酝ㄟ^(guò) Worksheet.Slicers[index] 獲取指定切片器,并使用 XlsSlicer 類(lèi)的 StyleType 屬性更改樣式,Name 屬性修改名稱(chēng),Caption 屬性設(shè)置標(biāo)題。此外,還可以調(diào)整其他設(shè)置,例如取消特定條目的選中狀態(tài)等。
以下是具體實(shí)現(xiàn)代碼:
using Spire.Xls;
using Spire.Xls.Core;
namespace ModifySlicers
{
internal class Program
{
static void Main(string[] args)
{
// 創(chuàng)建 Workbook 類(lèi)的實(shí)例
Workbook workbook = new Workbook();
// 加載 Excel 文件
workbook.LoadFromFile("切片器.xlsx");
// 獲取第一個(gè)工作表
Worksheet worksheet = workbook.Worksheets[0];
// 獲取工作表中的第一個(gè)切片器
XlsSlicer slicer = worksheet.Slicers[0];
// 更改切片器的樣式、名稱(chēng)和標(biāo)題
slicer.StyleType = SlicerStyleType.SlicerStyleDark6;
slicer.Name = "新名稱(chēng)";
slicer.Caption = "新標(biāo)題";
// 在切片器中取消選擇第一個(gè)項(xiàng)目
XlsSlicerCacheItemCollection slicerCacheItems = slicer.SlicerCache.SlicerCacheItems;
XlsSlicerCacheItem xlsSlicerCacheItem = slicerCacheItems[0];
xlsSlicerCacheItem.Selected = false;
// 修改切片器的列數(shù)
slicer.NumberOfColumns = 2;
// 修改切片器的寬度和高度
slicer.Width = 200;
slicer.Height = 200;
// 保存工作簿為 Excel 文件
workbook.SaveToFile("修改切片器.xlsx", ExcelVersion.Version2013);
workbook.Dispose();
}
}
}
C# 刪除Excel中的切片器
如果要?jiǎng)h除 Excel 工作表中的某個(gè)切片器,可以使用 Worksheet.Slicers.RemoveAt(int index) 方法。此外,你還可以使用Worksheet.Slicers.Clear()方法,刪除工作表中所有的切片器。
以下是具體實(shí)現(xiàn)代碼:
using Spire.Xls;
using Spire.Xls.Core;
namespace RemoveSlicers
{
internal class Program
{
static void Main(string[] args)
{
// 打開(kāi)Excel文件
Workbook workbook = new Workbook();
workbook.LoadFromFile("切片器.xlsx");
// 獲取第一個(gè)工作表
Worksheet worksheet = workbook.Worksheets[0];
// 刪除第一個(gè)切片器
worksheet.Slicers.RemoveAt(0);
// 或者刪除所有切片器
// worksheet.Slicers.Clear();
// 保存工作簿為 Excel 文件
workbook.SaveToFile("刪除切片器.xlsx", ExcelVersion.Version2013);
workbook.Dispose();
}
}
}以上就是使用 C# 在 Excel 中插入、修改和刪除切片器的全部?jī)?nèi)容。
到此這篇關(guān)于C#實(shí)現(xiàn)在Excel中插入和操作切片器的文章就介紹到這了,更多相關(guān)C# Excel插入和操作切片器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Unity3d 使用Gizmos畫(huà)一個(gè)圓圈
這篇文章主要介紹了Unity3d 使用Gizmos畫(huà)一個(gè)圓圈的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04
c#發(fā)送請(qǐng)求訪問(wèn)外部接口的實(shí)例
這篇文章主要介紹了c#發(fā)送請(qǐng)求訪問(wèn)外部接口的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01
C#中JSON轉(zhuǎn)為實(shí)體類(lèi)和List以及結(jié)合使用
開(kāi)發(fā)中經(jīng)常遇到將JSON字符串轉(zhuǎn)換為L(zhǎng)ist的需求,下面這篇文章主要給大家介紹了關(guān)于C#中JSON轉(zhuǎn)為實(shí)體類(lèi)和List以及結(jié)合使用的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01
C#實(shí)現(xiàn)十進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制的幾種方式
在C#中,十進(jìn)制和十六進(jìn)制轉(zhuǎn)換非常簡(jiǎn)單,本文給大家介紹了C#實(shí)現(xiàn)十進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制的幾種方式,并通過(guò)代碼示例講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-04-04
C# 如何調(diào)用C++ dll string類(lèi)型返回
這篇文章主要介紹了C# 如何調(diào)用C++ dll string類(lèi)型返回問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11
C#中WebBrowser.DocumentCompleted事件多次調(diào)用問(wèn)題解決方法
這篇文章主要介紹了C#中WebBrowser.DocumentCompleted事件多次調(diào)用問(wèn)題解決方法,本文講解了3種情況和各自情況的解決方法,需要的朋友可以參考下2015-01-01
WPF實(shí)現(xiàn)動(dòng)畫(huà)效果
這篇文章介紹了WPF實(shí)現(xiàn)動(dòng)畫(huà)效果的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-01-01
C#實(shí)現(xiàn)Stripe支付的方法實(shí)踐
本文主要介紹了C#實(shí)現(xiàn)Stripe支付的方法實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02

