Elimina intervalli nominati con C++
Introduzione
Se ci sono troppi nomi definiti o intervalli nominati nei file Excel, dobbiamo eliminarne alcuni perché non vengono più referenziati.
Rimuovere Intervallo Nominato in MS Excel
Per rimuovere un intervallo nominato da Excel, segui questi passaggi:
- Apri Microsoft Excel e apri il libro di lavoro che contiene l’intervallo nominato.
- Vai alla scheda “Formule” nella barra multifunzione di Excel.
- Fai clic sul pulsante “Gestione nomi” nel gruppo “Nomi definiti”. Si aprirà la finestra di dialogo Gestione nomi.
- Nella finestra di dialogo Gestione nomi, seleziona l’intervallo nominato che desideri rimuovere.
- Fai clic sul pulsante “Elimina”. Conferma l’eliminazione quando richiesto.
- Fai clic sul pulsante “Chiudi” per chiudere la finestra di dialogo Gestione nomi.
- Salva il libro di lavoro per mantenere le modifiche.
Elimina intervallo nominato usando Aspose.Cells for C++
Con Aspose.Cells for C++, puoi rimuovere intervalli nominati o nomi definiti tramite testo o indice nella lista.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Path of input Excel file
U16String inputFilePath = srcDir + u"Book1.xlsx";
// Path of output Excel file
U16String outputFilePath = outDir + u"Book2.xlsx";
// Instantiate a new Workbook
Workbook workbook(inputFilePath);
// Get all the worksheets in the book
WorksheetCollection worksheets = workbook.GetWorksheets();
// Delete a named range by text
worksheets.GetNames().Remove(u"NamedRange");
// Delete a defined name by index
worksheets.GetNames().RemoveAt(0);
// Save the workbook to retain the changes
workbook.Save(outputFilePath);
std::cout << "Named ranges removed successfully!" << std::endl;
Aspose::Cells::Cleanup();
}
Nota: se il nome definito è referenziato da formule, non può essere rimosso. Possiamo rimuovere solo la formula del nome definito.
Rimuove alcuni intervalli nominati
Quando rimuoviamo un nome definito, dobbiamo verificare se è referenziato da tutte le formule nel file. Per migliorare le performance nella rimozione degli intervalli nominati, possiamo rimuoverne alcuni insieme.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Path of input excel file
U16String inputFilePath = srcDir + u"Book1.xlsx";
// Path of output excel file
U16String outputFilePath = outDir + u"Book2.xlsx";
// Instantiate a new Workbook
Workbook workbook(inputFilePath);
// Get all the worksheets in the book
WorksheetCollection worksheets = workbook.GetWorksheets();
// Delete some defined names
Vector<U16String> namesToRemove = { u"NamedRange1", u"NamedRange2" };
worksheets.GetNames().Remove(namesToRemove);
// Save the workbook to retain the changes
workbook.Save(outputFilePath);
std::cout << "Named ranges removed successfully!" << std::endl;
Aspose::Cells::Cleanup();
}
Rimuovere Nomi Definiti Duplicati
Alcuni file Excel si corrompono perché alcuni nomi definiti sono duplicati. Quindi possiamo rimuovere questi nomi duplicati per riparare il file.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Path of input Excel file
U16String inputFilePath = srcDir + u"Book1.xlsx";
// Path of output Excel file
U16String outputFilePath = outDir + u"Book2.xlsx";
// Instantiate a new Workbook
Workbook workbook(inputFilePath);
// Get all the worksheets in the book
WorksheetCollection worksheets = workbook.GetWorksheets();
// Delete some defined names
worksheets.GetNames().RemoveDuplicateNames();
// Save the workbook to retain the changes
workbook.Save(outputFilePath);
std::cout << "Workbook saved successfully after removing duplicate names!" << std::endl;
Aspose::Cells::Cleanup();
}