用C++读写XLS和XLSB文件的外部连接
Contents
[
Hide
]
可能的使用场景
Aspose.Cells for C++支持读取和写入XLSX文件的外部连接,并将此功能扩展到XLSB和XLS格式。相同的代码结构适用于所有支持的文件类型。
读取和写入XLS/XLSB文件的外部连接
以下示例代码加载一个示例XLSB文件(同样适用于XLS),并修改其第一个外部连接(通常是Microsoft Access数据库连接)。代码演示了:
- 加载电子表格文件
- 访问外部连接
- 修改连接属性
- 保存修改后的文件
示例代码
此代码适用于XLSB和XLS文件,通过调整输入/输出文件扩展名。
#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();
}
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;
}
控制台输出
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