我无法使用 JXA 在 Mac Numbers 中使用 Delete Row/Remove
I can't get Delete Row/Remove to work in Mac Numbers with JXA
我已经为 Numbers 编写了一个 JXA 脚本,它将标准的电子商务订单电子表格转换为 Stamps.com 格式,用于上传订单、打印运输标签。在为 Numbers 的 JXA 挖掘信息 2 周后,我的转化率为 90%。但是,我需要删除一些不相关的行并且无法使该功能正常工作。我也对 .deleteRow() 和 .remove() 感到困惑。
注释掉的代码是一次不同的尝试,但也没有奏效。但是,使用 table.ranges["6:6"] 我确实设法 select (突出显示)整个第 6 行,但没有删除。这是我当前的代码(片段)。
var Numbers = Application('Numbers')
Numbers.includeStandardAdditions = true;
const myFilePath = "/Users/jds/Sites/Customer Excel sheets for STAMPS/";
// Point to the file and open it
var path = Numbers.chooseFile({ withPrompt: 'Please select spreadsheet file (.xls, .xlsx, .numbers' })
var doc = Numbers.open(path)
// Access the first table of the first sheet of the document
thesheet = doc.sheets[0]
table = thesheet.tables[0]
...
// Check for "Marci Bee" example (highlighted) row present at row 6; if so, delete the row.
if (table.cells["E6"].value() === "Marci Bee") {
Numbers.displayAlert("Marci is here.") // *** DEBUG *** (This works)
const marciRow = 6
thesheet.deleteRow(marciRow);
/*
Numbers.displayAlert("Ok 1") // *** DEBUG ***
table.rangeSelection = table.ranges["6:6"]
Numbers.displayAlert("Ok 2") // *** DEBUG ***
rmMyRow = table.selectionRange()
Numbers.displayAlert("Ok 3") // *** DEBUG ***
rmMyRow.delete()
*/
Numbers.displayAlert("Marci is gone.") // *** DEBUG ***
}
table.rows[marciRow-1].delete(); //the index is zero based
我已经为 Numbers 编写了一个 JXA 脚本,它将标准的电子商务订单电子表格转换为 Stamps.com 格式,用于上传订单、打印运输标签。在为 Numbers 的 JXA 挖掘信息 2 周后,我的转化率为 90%。但是,我需要删除一些不相关的行并且无法使该功能正常工作。我也对 .deleteRow() 和 .remove() 感到困惑。 注释掉的代码是一次不同的尝试,但也没有奏效。但是,使用 table.ranges["6:6"] 我确实设法 select (突出显示)整个第 6 行,但没有删除。这是我当前的代码(片段)。
var Numbers = Application('Numbers')
Numbers.includeStandardAdditions = true;
const myFilePath = "/Users/jds/Sites/Customer Excel sheets for STAMPS/";
// Point to the file and open it
var path = Numbers.chooseFile({ withPrompt: 'Please select spreadsheet file (.xls, .xlsx, .numbers' })
var doc = Numbers.open(path)
// Access the first table of the first sheet of the document
thesheet = doc.sheets[0]
table = thesheet.tables[0]
...
// Check for "Marci Bee" example (highlighted) row present at row 6; if so, delete the row.
if (table.cells["E6"].value() === "Marci Bee") {
Numbers.displayAlert("Marci is here.") // *** DEBUG *** (This works)
const marciRow = 6
thesheet.deleteRow(marciRow);
/*
Numbers.displayAlert("Ok 1") // *** DEBUG ***
table.rangeSelection = table.ranges["6:6"]
Numbers.displayAlert("Ok 2") // *** DEBUG ***
rmMyRow = table.selectionRange()
Numbers.displayAlert("Ok 3") // *** DEBUG ***
rmMyRow.delete()
*/
Numbers.displayAlert("Marci is gone.") // *** DEBUG ***
}
table.rows[marciRow-1].delete(); //the index is zero based