2013-11-20 6 views
0

Я использую POI Apache для создания Dynamic Excel.Excel Apache POI Printing Issue

У меня цветные ячейки. Для цвета я использую

headerCellStyle.setFillForegroundColor (HSSFColor.GREY_25_PERCENT.index); headerCellStyle.setFillPattern (HSSFCellStyle.SOLID_FOREGROUND);

Excel создан с идеальными цветами, но когда я печатаю этот цвет фона excel, вы получаете точечный оттенок.

Я попробовал и проверил следующее:

  1. Сво не проблема принтера
  2. Когда я скопировать содержимое генерируется первенствует в новом Excel. Его печать идеальна.

Таким образом, в коде или в POI должно быть что-то неправильно.

+0

Какой принтер у вас есть? Лазерный монохроматический? ;-) – Artur

+0

Если excel сгенерирован с правильными цветами. Затем код правильный. Проверьте настройки принтера – swamy

ответ

2

Если excel сгенерирован правильно, я не думаю, что это проблема Apa poi/code.

Я вставляю пример с официальной страницы Apache poi.

Пожалуйста, проверьте и подтвердите свой код, если есть какой-то вопрос :::

Workbook wb = new XSSFWorkbook(); 
Sheet sheet = wb.createSheet("new sheet"); 

// Create a row and put some cells in it. Rows are 0 based. 
Row row = sheet.createRow((short) 1); 

// Aqua background 
CellStyle style = wb.createCellStyle(); 
style.setFillBackgroundColor(IndexedColors.AQUA.getIndex()); 
style.setFillPattern(CellStyle.BIG_SPOTS); 
Cell cell = row.createCell((short) 1); 
cell.setCellValue("X"); 
cell.setCellStyle(style); 

// Orange "foreground", foreground being the fill foreground not the font color. 
style = wb.createCellStyle(); 
style.setFillForegroundColor(IndexedColors.ORANGE.getIndex()); 
style.setFillPattern(CellStyle.SOLID_FOREGROUND); 
cell = row.createCell((short) 2); 
cell.setCellValue("X"); 
cell.setCellStyle(style); 

// Write the output to a file 
FileOutputStream fileOut = new FileOutputStream("workbook.xls"); 
wb.write(fileOut); 
fileOut.close(); 
Смежные вопросы