Преобразование рабочего листа в различные форматы изображений
Преобразование рабочего листа в изображение
Рабочие листы содержат данные, которые вы хотите проанализировать. Например, рабочий лист может содержать параметры, итоги, проценты, исключения и расчеты.
Как разработчику, вам может понадобиться представить рабочие листы в виде изображений. Например, вам может понадобиться использовать изображение рабочего листа в приложении или на веб-странице. Вы можете вставить изображение в документ Word Microsoft, файл PDF, презентацию PowerPoint или документ другого типа. Проще говоря, вы хотите, чтобы рабочий лист отображался как изображение, чтобы вы могли использовать его где-то еще.
Aspose.Cells поддерживает преобразование листов Excel в изображения. Чтобы использовать эту функцию, вам необходимо импортироватьAspose.Cells.Renderingпространство имен для вашей программы или проекта. Он имеет несколько полезных классов для рендеринга и печати, например,ISheetRender, Имажеорпринтоптионси другие.
Класс Aspose.Cells.Rendering.ISheetRender
представляет рабочий лист для отображения в виде изображений. Он имеет перегруженный метод,Изображать, который может преобразовать рабочий лист в файл(ы) изображения с различными атрибутами или параметрами. Поддерживается несколько форматов изображений, например, BMP, PNG, GIF, JPG, JPEG, TIFF, EMF.
В следующем фрагменте кода показано, как преобразовать рабочий лист в файле Excel в файл изображения.
PNG Формат
См. следующий пример кода, егообразец файла Excel , ивывод PNG Изображения.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-C | |
// Source directory path. | |
StringPtr srcDir = new String("..\\Data\\01_SourceDirectory\\"); | |
// Output directory path. | |
StringPtr outDir = new String("..\\Data\\02_OutputDirectory\\"); | |
// Path of input Excel file. | |
StringPtr sampleConvertingWorksheetToDifferentImageFormats = srcDir->StringAppend(new String("sampleConvertingWorksheetToDifferentImageFormats.xlsx")); | |
// Create an empty workbook. | |
intrusive_ptr<Aspose::Cells::IWorkbook> workbook = Factory::CreateIWorkbook(sampleConvertingWorksheetToDifferentImageFormats); | |
// Access first worksheet. | |
intrusive_ptr<Aspose::Cells::IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0); | |
// Create image or print options object. | |
intrusive_ptr<Aspose::Cells::Rendering::IImageOrPrintOptions> imgOptions = Factory::CreateIImageOrPrintOptions(); | |
// Specify the image format. | |
imgOptions->SetImageFormat(Aspose::Cells::Systems::Drawing::Imaging::ImageFormat::GetPng()); | |
// Specify horizontal and vertical resolution | |
imgOptions->SetHorizontalResolution(200); | |
imgOptions->SetVerticalResolution(200); | |
// Render the sheet with respect to specified image or print options. | |
intrusive_ptr<Aspose::Cells::Rendering::ISheetRender> sr = Factory::CreateISheetRender(worksheet, imgOptions); | |
// Get page count. | |
Aspose::Cells::Systems::Int32 pageCount = sr->GetPageCount(); | |
// Create string builder object for string concatenations. | |
intrusive_ptr<Aspose::Cells::Systems::Text::StringBuilder> sb = new Aspose::Cells::Systems::Text::StringBuilder(); | |
// Render each page to png image one by one. | |
for (int i = 0; i < pageCount; i++) | |
{ | |
// Clear string builder and create output image path with string concatenations. | |
sb->Clear(); | |
sb->Append(outDir); | |
sb->Append((StringPtr)new String("outputConvertingWorksheetToImagePNG_")); | |
sb->Append(i); | |
sb->Append((StringPtr)new String(".png")); | |
// Get the output image path. | |
StringPtr outputPNG = sb->ToString(); | |
// Convert worksheet to png image. | |
sr->ToImage(i, outputPNG); | |
} |
TIFF Формат
См. следующий пример кода, егообразец файла Excel , ивывод TIFF Изображение.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-C | |
// Source directory path. | |
StringPtr srcDir = new String("..\\Data\\01_SourceDirectory\\"); | |
// Output directory path. | |
StringPtr outDir = new String("..\\Data\\02_OutputDirectory\\"); | |
// Path of input Excel file. | |
StringPtr sampleConvertingWorksheetToDifferentImageFormats = srcDir->StringAppend(new String("sampleConvertingWorksheetToDifferentImageFormats.xlsx")); | |
// Create an empty workbook. | |
intrusive_ptr<Aspose::Cells::IWorkbook> workbook = Factory::CreateIWorkbook(sampleConvertingWorksheetToDifferentImageFormats); | |
// Access first worksheet. | |
intrusive_ptr<Aspose::Cells::IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0); | |
// Create image or print options object. | |
intrusive_ptr<Aspose::Cells::Rendering::IImageOrPrintOptions> imgOptions = Factory::CreateIImageOrPrintOptions(); | |
// Specify the image format. | |
imgOptions->SetImageFormat(Aspose::Cells::Systems::Drawing::Imaging::ImageFormat::GetTiff()); | |
// Specify horizontal and vertical resolution | |
imgOptions->SetHorizontalResolution(200); | |
imgOptions->SetVerticalResolution(200); | |
// Render the sheet with respect to specified image or print options. | |
intrusive_ptr<Aspose::Cells::Rendering::ISheetRender> sr = Factory::CreateISheetRender(worksheet, imgOptions); | |
// Get the output image path. | |
StringPtr outputTiff = outDir->Append((StringPtr)new String("outputConvertingWorksheetToImageTiff.tiff")); | |
// Convert worksheet to tiff image. | |
sr->ToTiff(outputTiff); |
Преобразование рабочего листа в SVG
SVG означает Масштабируемая векторная графика. SVG — это спецификация, основанная на стандартах XML для двумерной векторной графики. Это открытый стандарт, который разрабатывается Консорциумом World Wide Web (W3C) с 1999 года.
Aspose.Cells for C++ смог преобразовать рабочие листы в изображение SVG, начиная с версии 18.5.0.
Чтобы использовать эту функцию, импортируйте пространство имен Aspose.Cells.Rendering
в свою программу или проект. В нем есть несколько полезных классов для рендеринга и печати, например, ISheetRender
, IImageOrPrintOptions
и другие.
Класс Aspose.Cells.Rendering.IImageOrPrintOptions
указывает, что рабочий лист будет сохранен в формате SVG. В следующем фрагменте кода показано, как преобразовать рабочий лист в файле Excel в файл изображения SVG.
См. следующий пример кода, егообразец файла Excel , ивывод SVG Изображения.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-C | |
// Source directory path. | |
StringPtr srcDir = new String("..\\Data\\01_SourceDirectory\\"); | |
// Output directory path. | |
StringPtr outDir = new String("..\\Data\\02_OutputDirectory\\"); | |
// Path of input Excel file. | |
StringPtr sampleConvertingWorksheetToDifferentImageFormats = srcDir->StringAppend(new String("sampleConvertingWorksheetToDifferentImageFormats.xlsx")); | |
// Create an empty workbook. | |
intrusive_ptr<Aspose::Cells::IWorkbook> workbook = Factory::CreateIWorkbook(sampleConvertingWorksheetToDifferentImageFormats); | |
// Access first worksheet. | |
intrusive_ptr<Aspose::Cells::IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0); | |
// Create image or print options object. | |
intrusive_ptr<Aspose::Cells::Rendering::IImageOrPrintOptions> imgOptions = Factory::CreateIImageOrPrintOptions(); | |
// Specify horizontal and vertical resolution | |
imgOptions->SetHorizontalResolution(200); | |
imgOptions->SetVerticalResolution(200); | |
// Specify the save format. | |
imgOptions->SetSaveFormat(Aspose::Cells::SaveFormat::SaveFormat_SVG); | |
// Render the sheet with respect to specified image or print options. | |
intrusive_ptr<Aspose::Cells::Rendering::ISheetRender> sr = Factory::CreateISheetRender(worksheet, imgOptions); | |
// Get page count. | |
Aspose::Cells::Systems::Int32 pageCount = sr->GetPageCount(); | |
// Create string builder object for string concatenations. | |
intrusive_ptr<Aspose::Cells::Systems::Text::StringBuilder> sb = new Aspose::Cells::Systems::Text::StringBuilder(); | |
// Render each page to png image one by one. | |
for (int i = 0; i < pageCount; i++) | |
{ | |
// Clear string builder and create output image path with string concatenations. | |
sb->Clear(); | |
sb->Append(outDir); | |
sb->Append((StringPtr)new String("outputConvertingWorksheetToImageSVG_")); | |
sb->Append(i); | |
sb->Append((StringPtr)new String(".svg")); | |
// Get the output image path. | |
StringPtr outputSVG = sb->ToString(); | |
// Convert worksheet to tiff image. | |
sr->ToImage(i, outputSVG); | |
} |