将OLE对象插入工作表

可能的使用场景

Aspose.Cells允许您在工作表中插入OLE对象。请使用Worksheet->GetOleObjects()->Add()方法来实现此目的。您需要一个图像字节数组,将用于在工作表中插入OLE对象,以及Ole对象数据字节,将是您实际要插入工作表中的对象。 

将OLE对象插入工作表

The following sample code creates the workbook object and inserts the Ole object inside the first worksheet and saves it as output Excel file. Please see the Aspose标志 used as image bytes and input Excel file used as Ole object data inside the code for reference.

示例代码

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-C
Vector<uint8_t> GetDataFromFile(const char* file)
{
// open a file
std::ifstream fileStream(file, std::ios::binary);
if (!fileStream.is_open()) {
std::cerr << "Failed to open the file: " << file << std::endl;
return Vector<uint8_t>(0);
}
// Get file size
fileStream.seekg(0, std::ios::end);
std::streampos fileSize = fileStream.tellg();
fileStream.seekg(0, std::ios::beg);
// Read file contents into uint8_t array
uint8_t* buffer = new uint8_t[fileSize];
fileStream.read(reinterpret_cast<char*>(buffer), fileSize);
fileStream.close();
Vector<uint8_t>data(buffer, fileSize);
delete[] buffer;
return data;
}
......
Aspose::Cells::Startup();
// Source directory path.
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path.
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Path of output Excel file.
U16String outputInsertingOLEObjectsIntoWorksheet = outDir + u"outputInsertingOLEObjectsIntoWorksheet.xlsx";
// Instantiate a new workbook.
Workbook workbook;
// Get the first worksheet.
Worksheet worksheet = workbook.GetWorksheets().Get(0);
// Read Image for Ole Object into array of bytes.
U16String imagePath = srcDir + u"AsposeLogo.png";
Vector<uint8_t>imageData = GetDataFromFile(imagePath.ToUtf8().c_str());
// Read Ole Object into array of bytes.
U16String oleObjectPath = srcDir + u"inputInsertOleObject.xlsx";
Vector<uint8_t> oleObjectData = GetDataFromFile(oleObjectPath.ToUtf8().c_str());
// Add an Ole object into the worksheet with the image.
int idx = worksheet.GetOleObjects().Add(2, 2, 200, 220, imageData);
// Set the Ole object data.
OleObject oleObj = worksheet.GetOleObjects().Get(idx);
oleObj.SetObjectData(oleObjectData);
// Save the workbook.
workbook.Save(outputInsertingOLEObjectsIntoWorksheet);
Aspose::Cells::Cleanup();