Формат изображения с заполнением и линией с использованием apache poi в Java

Я вставляю изображение в excel, используя apache poi 3.15, его рабочий файл, но я хочу добавить пограничную линию к изображению, которое можно сделать, щелкнув правой кнопкой мыши по изображению -> Формат изображения -> Заполнить и Линия -> Линия -> Твердо Линия в MS Office много искала в документации SO и apache, но не имеет понятия, как это сделать с помощью poi. Следуя моему коду

private void drawImageOnExcelSheetForGLOS(XSSFSheet sitePhotosSheet, int row1, int row2, int col1, int col2, String fileName) { try { InputStream is = new FileInputStream(fileName); byte[] bytes = IOUtils.toByteArray(is); int pictureIdx = sitePhotosSheet.getWorkbook().addPicture(bytes,Workbook.PICTURE_TYPE_JPEG); is.close(); CreationHelper helper = sitePhotosSheet.getWorkbook().getCreationHelper(); // Create the drawing patriarch. This is the top level container for // all shapes. Drawing drawing = sitePhotosSheet.createDrawingPatriarch(); // add a picture shape ClientAnchor anchor = helper.createClientAnchor(); anchor.setAnchorType( ClientAnchor.MOVE_AND_RESIZE ); // set top-left corner of the picture, // subsequent call of Picture#resize() will operate relative to it anchor.setCol1(col1); anchor.setCol2(col2); anchor.setRow1(row1); anchor.setRow2(row2); drawing.createPicture(anchor, pictureIdx); } catch(Exception e) { } } 

Я умею рисовать линию вокруг изображения с помощью XSSFSimpleShape, но это не то, что я хотел точно, а также пытался с помощью setBorderXXX (), но эти границы или линии не перемещаются с изображением, как при установке с помощью MS Office. Первое изображение показывает, что я получаю, и второе показывает, что я хочу введите описание изображения здесь

Это может быть достигнуто с помощью метода setLineXXX () XSSFPicture следующим образом,

 private void drawImageOnExcelSheetForGLOS(XSSFSheet sitePhotosSheet, int row1, int row2, int col1, int col2, String fileName) { try { InputStream is = new FileInputStream(fileName); byte[] bytes = IOUtils.toByteArray(is); int pictureIdx = sitePhotosSheet.getWorkbook().addPicture(bytes,Workbook.PICTURE_TYPE_JPEG); is.close(); CreationHelper helper = sitePhotosSheet.getWorkbook().getCreationHelper(); XSSFDrawing drawing = sitePhotosSheet.createDrawingPatriarch(); ClientAnchor anchor = helper.createClientAnchor(); anchor.setAnchorType( ClientAnchor.MOVE_AND_RESIZE ); anchor.setCol1(col1); anchor.setCol2(col2); anchor.setRow1(row1); anchor.setRow2(row2); // setLineXXX() methods can be used to set line border to image XSSFPicture pic = drawing.createPicture(anchor, pictureIdx); // 0 indicates solid line pic.setLineStyle(0); // rgb color code for black line pic.setLineStyleColor(0, 0, 0); // double number for line width pic.setLineWidth(1.5); } catch(Exception e) { e.printStackTrace(); } } 
  • Чтение значений времени из таблицы с помощью poi api
  • Apache POI добавляет название серии в LineChart
  • Создать выпадающий список в excel
  • Прочтите значение ячейки и замените Alt + Enter на a,
  • Как написать столбец по столбцу с помощью Apache poi
  • Импорт файла Excel в таблицу Oracle с использованием Java
  • Создание файла Excel с помощью jExcel
  • Java Apache POI (Excel) Преобразование данных в таблицу в таблицу
  • написать в xlsm (Excel 2007) с помощью apache poi
  • Список, содержащий разные данные, которые будут отображаться в excel
  • Принудительно закройте файл Excel, прежде чем писать ему
  • Давайте будем гением компьютера.