![](/img/trans.png)
[英]Combine Specific columns from several tables using excel office script to one table
[英]Office Scripts - How to select specific columns using column name from a table and delete other columns?
我想從 Excel 在線工作簿中的表中按列名稱刪除 select 特定列,並刪除其他不需要的列。 我想使用Office 腳本來執行此操作。
分類號 | Position | 薪水 | 獎金 | 增量_百分比 |
---|---|---|---|---|
CAT01 | 會計 | 100K | 25K | 5% |
CAT02 | Controller | 80K | 20K | 7% |
CAT03 | 稅務分析師 | 70K | 15K | 6% |
CAT04 | 導演 | 200K | 35K | 8% |
如上表所示,我只想使用 Office 腳本按列名選擇Categ_No 、 Position和Bonus列,並刪除其他兩列(Salary 和 Increment_Percentage)。
我是 Office 腳本的新手,非常感謝任何幫助!
這是基本的,需要更多的工作,但展示了你的要求......
function main(workbook: ExcelScript.Workbook) {
let myTable = workbook.getTable("MyTable");
let columnsToKeep: string[] = ["Categ_No", "Position", "Bonus"];
myTable.getColumns().forEach(column => {
let columnName = column.getName();
if (!columnsToKeep.includes(columnName)) {
column.delete();
}
});
}
您可以嘗試以下代碼:
function main(workbook: ExcelScript.Workbook) {
let tbl = workbook.getTable("Table1")
let headersArr = tbl.getHeaderRowRange().getValues()[0] as string[]
let finalColumns: string[] = ["Categ_No", "Position", "Bonus"];
headersArr = headersArr.filter(e => !finalColumns.includes(e))
headersArr.forEach(e => {
tbl.getColumn(e).delete()
})
}
它應該產生與其他答案相同的結果。 它是如何做到的有點不同。 此代碼從 header 行范圍獲取值。 然后它會根據您不想保留的列過濾標題數組。 然后它遍歷它(此時將是您不想要的列)並刪除具有這些列名稱的列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.