वास्तव में बुनियादी सवाल जैसा महसूस होता है उसके लिए क्षमा करें। मैं एक एक्सेल तालिका के माध्यम से पुनरावृत्त करने की कोशिश कर रहा हूं और नए ऐड-इन मॉडल का उपयोग करके किसी भी खाली पंक्तियों को हटा सकता हूं। मैं जावास्क्रिप्ट के लिए काफी नया हूँ और सभी अतुल्यकालिकता और कॉलबैक मुझे समुद्री मील में बांध रहे हैं!

चूंकि मुझे लगता है कि यह सरल है, मुझे आश्चर्य हुआ कि क्या कोई ऐसा हो सकता है जो एक त्वरित कोड नमूना पोस्ट करने के लिए पर्याप्त हो या सुझाव के लिए इसे करने का सबसे साफ तरीका हो? क्षमा करें यदि मैंने इसे डॉक्स में याद किया है।

अग्रिम में बहुत धन्यवाद।

टिम

1
Tim Hill 29 नवम्बर 2015, 00:29

2 जवाब

सबसे बढ़िया उत्तर

निम्नलिखित कोड को वही करना चाहिए जो आप खोज रहे हैं।

Excel.run(function(ctx) {
    var rows = ctx.workbook.tables.getItem('YourTableName').rows;
    rows.load("values"); // We'll need the rows values to check if they're empty.
    return ctx.sync().then(function() {
        // Important to go through the items in reverse fashion as deleting a row shifts the rest up.
        rows.items.reverse().forEach(function(row) {
            // row.values is a double array. Although, we know it can only contain one row.
            var isEmpty = row.values[0].every(function(col) {
                return col === "";
            });

            if (isEmpty) {
                row.delete();
            }
        });
    }).then(ctx.sync);
}).catch(function(error) {
    console.log("Error: " + error);
    if (error instanceof OfficeExtension.Error) {
        console.log("Debug info: " + JSON.stringify(error.debugInfo));
    }
});

उम्मीद है की वो मदद करदे,

गेब्रियल रॉयर - ऑफिस एक्स्टेंसिबिलिटी टीम, MSFT पर डेवलपर

0
Gab Royer 1 पद 2015, 00:26

मेरा सुझाव है कि आप बुनियादी काम करने के लिए मैक्रो रिकॉर्डर सुविधा का उपयोग करें। फिर अपना काम करने के लिए एक खाली पंक्ति परीक्षण के साथ प्रत्येक सेल लूप के लिए एक मूल के भीतर का उपयोग करें।

-3
gssi 30 नवम्बर 2015, 14:49