Leggere e scrivere le connessioni esterne di file XLS e XLSB con C++
Contents
[
Hide
]
Possibili Scenari di Utilizzo
Aspose.Cells for C++ supporta la lettura e scrittura delle connessioni esterne per i file XLSX e ora estende questa capacità anche ai formati XLSB e XLS. La stessa struttura di codice funziona per tutti i tipi di file supportati.
Leggere e Scrivere Connessioni Esterne di file XLS/XLSB
Il codice di esempio seguente carica un file XLSB di esempio (funziona anche con XLS) e modifica la prima connessione esterna (tipicamente una connessione a Microsoft Access). Il codice dimostra come:
- Caricare il file di foglio di calcolo
- Accedere alle connessioni esterne
- Modificare le proprietà della connessione
- Salvare il file modificato
Codice di Esempio
Questo codice funziona sia per file XLSB che per file XLS regolando le estensioni di input/output.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source and output directories
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// File paths
U16String inputFilePath = srcDir + u"sampleExternalConnection_XLSB.xlsb";
U16String outputFilePath = outDir + u"outputExternalConnection_XLSB.xlsb";
// Load source workbook
Workbook workbook(inputFilePath);
// Get first external connection
ExternalConnectionCollection connections = workbook.GetDataConnections();
DBConnection dbCon = connections.Get(0);
// Print connection details
std::cout << "Connection Name: " << dbCon.GetName().ToUtf8() << std::endl;
std::cout << "Command: " << dbCon.GetCommand().ToUtf8() << std::endl;
std::cout << "Connection Info: " << dbCon.GetConnectionString().ToUtf8() << std::endl;
// Modify connection name
dbCon.SetName(u"NewCust");
// Save modified workbook
workbook.Save(outputFilePath);
std::cout << "External connection updated successfully." << std::endl;
Aspose::Cells::Cleanup();
}
Equivalente C++:
#include <iostream>
#include <Aspose.Cells.h>
using namespace Aspose::Cells;
using namespace Aspose::Cells::ExternalConnections;
int main() {
Aspose::Cells::Startup();
// Load source workbook
Workbook workbook(u"source.xlsb");
// Access first external connection
DBConnection conn(workbook.GetDataConnections().Get(0));
// Output original connection details
std::cout << "Connection Name: " << conn.GetName().ToUtf8() << std::endl;
std::cout << "Command: " << conn.GetCommand().ToUtf8() << std::endl;
std::cout << "Connection Info: " << conn.GetConnectionInfo().ToUtf8() << std::endl;
// Modify connection name
conn.SetName(u"Cust_Modified");
// Save updated workbook
workbook.Save(u"output.xlsb");
Aspose::Cells::Cleanup();
return 0;
}
Output della console
Connection Name: Cust
Command: Customer
Connection Info: Provider=Microsoft.ACE.OLEDB.12.0;Password="";User ID=Admin;Data Source=C:\TempSha\Cust.accdb;Mode=Share Deny Write;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=6;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;Jet OLEDB:Support Complex Data=False;Jet OLEDB:Bypass UserInfo Validation=False;Jet OLEDB:Limited DB Caching=False;Jet OLEDB:Bypass ChoiceField Validation=False