Отобразить Рабочий лист и Книгу в виде изображения с использованием параметров ImageOrPrintOptions

Обзор

Иногда вам может понадобиться представить ваши рабочие листы в виде изображения. Вам может потребоваться вставлять изображения в документ Word, файл PDF, презентацию PowerPoint или использовать их в другом сценарии. Просто говоря, вам нужен рабочий лист, отображенный как изображение, чтобы вы могли использовать его в другом месте. Aspose.Cells поддерживает конвертацию рабочих листов в файлы изображений. Также Aspose.Cells поддерживает установку различных параметров, таких как формат изображения, разрешение (вертикальное и горизонтальное), качество изображения и другие параметры изображения и печати.

API предоставляет несколько ценных классов, например, SheetRender, ImageOrPrintOptions, WorkbookRender и т. д.

Класс SheetRender обрабатывает задачу создания изображений для рабочего листа, в то время как класс WorkbookRender выполняет то же самое для книги. Оба упомянутых класса имеют несколько перегруженных версий метода toImage, которые могут непосредственно преобразовывать рабочий лист или книгу в файл(-ы) изображения с заданными желаемыми атрибутами или параметрами. Вы можете сохранить файл изображения на диск/поток. Поддерживается несколько форматов изображений, например BMP, PNG, GIFF, JPEG, TIFF, EMF и другие.

Преобразовать Рабочий лист в изображение

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(ConvertWorksheettoImage.class) + "TechnicalArticles/";
//Instantiate a new Workbook object
//Open template
Workbook book = new Workbook(dataDir + "book1.xlsx");
//Get the first worksheet
Worksheet sheet = book.getWorksheets().get(0);
//Apply different Image and Print options
ImageOrPrintOptions options = new ImageOrPrintOptions();
//Set Horizontal Resolution
options.setHorizontalResolution(300);
//Set Vertical Resolution
options.setVerticalResolution(300);
//Set TiffCompression
options.setTiffCompression(TiffCompression.COMPRESSION_LZW);
//Set Image Format
options.setImageType(ImageType.TIFF);
//Set printing page type
options.setPrintingPage(PrintingPageType.DEFAULT);
//Render the sheet with respect to specified image/print options
SheetRender sr = new SheetRender(sheet, options);
//Render/save the image for the sheet
sr.toImage(0, dataDir + "CWorksheettoImage_out.tiff");

Опции конвертации

Можно сохранить конкретные страницы в изображение. Следующий код преобразует первый и второй рабочие листы в книге в изображения JPG.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(ConversionOptions.class) + "TechnicalArticles/";
// Instantiate a new Workbook object
// Open template
Workbook book = new Workbook(dataDir + "book1.xlsx");
// Get the first worksheet
Worksheet sheet = book.getWorksheets().get(0);
// Apply different Image and Print options
ImageOrPrintOptions options = new ImageOrPrintOptions();
// Set Horizontal Resolution
options.setHorizontalResolution(300);
// Set Vertical Resolution
options.setVerticalResolution(300);
// Set Image Format
options.setImageType(ImageType.JPEG);
// If you want entire sheet as a single image
options.setOnePagePerSheet(true);
// Render the sheet with respect to specified image/print options
SheetRender sr = new SheetRender(sheet, options);
// Render/save the image for the sheet
sr.toImage(0, dataDir + "ConversionOptions_out.jpg");

Или вы можете пройти по всей книге и отобразить каждый рабочий лист в отдельное изображение:

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(WorksheetToSeparateImage.class) + "TechnicalArticles/";
// Instantiate a new Workbook object
// Open template
Workbook book = new Workbook(dataDir + "book1.xlsx");
// Iterate over all worksheets in the workbook
for (int i = 0; i < book.getWorksheets().getCount(); i++) {
Worksheet sheet = book.getWorksheets().get(i);
// Apply different Image and Print options
ImageOrPrintOptions options = new ImageOrPrintOptions();
// Set Horizontal Resolution
options.setHorizontalResolution(300);
// Set Vertical Resolution
options.setVerticalResolution(300);
// Set Image Format
options.setImageType(ImageType.JPEG);
// If you want entire sheet as a single image
options.setOnePagePerSheet(true);
// Render to image
SheetRender sr = new SheetRender(sheet, options);
sr.toImage(0, dataDir + "WSheetToSImage_out-" + sheet.getName() + ".jpg");
}

Преобразовать Книгу в изображение:

Для того чтобы отобразить всю книгу в формате изображения, вы можете использовать приведенный выше подход или просто использовать класс WorkbookRender, который принимает экземпляр Workbook а также объект ImageOrPrintOptions.

Вы можете сохранить всю книгу в единичное изображение TIFF с несколькими кадрами или страницами:

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(ConvertWorkbooktoImage.class) + "TechnicalArticles/";
// Instantiate a new Workbook object
Workbook book = new Workbook(dataDir + "book1.xlsx");
// Apply different Image and Print options
ImageOrPrintOptions options = new ImageOrPrintOptions();
// Set Image Format
options.setImageType(ImageType.TIFF);
// If you want entire sheet as a single image
options.setOnePagePerSheet(true);
// Render to image
WorkbookRender render = new WorkbookRender(book, options);
render.toImage(dataDir + "CWorkbooktoImage_out.tiff");

Связанные статьи