Есть небольшой код на экспорт данных с Jtable в excel
public class ExcelOrders {
private static String getCellValue(JTable table, int x, int y) {
return table.getValueAt(x, y).toString();
}
public static void writeToExcel (JTable table, String folder) {
XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet ws = wb.createSheet();
TreeMap<String, Object[]> data = new TreeMap<>();
data.put("-1", new Object[]{table.getColumnName(0), table.getColumnName(1), table.getColumnName(2),
table.getColumnName(3), table.getColumnName(4), table.getColumnName(6), table.getColumnName(8),
table.getColumnName(9)});
for (int i = 0; i < table.getRowCount(); i++) {
data.put(Integer.toString(i), new Object[] {getCellValue(table, i, 0), getCellValue(table, i, 1),
getCellValue(table, i, 2), getCellValue(table, i, 3), getCellValue(table, i, 4),
getCellValue(table, i, 6), getCellValue(table, i, 8), getCellValue(table, i, 9)});
}
Set<String> ids = data.keySet();
XSSFRow row;
int rowId = 0;
for (String key: ids) {
row = ws.createRow(rowId++);
Object[] values = data.get(key);
int celId=0;
for (Object o: values) {
Cell cell = row.createCell(celId++);
cell.setCellValue(o.toString());
cell.setCellStyle(styleExcel.createHeadingStyle(wb));
}
}
try {
FileOutputStream fos = new FileOutputStream(new File(folder+"\\"+"Список рабочих.xlsx"));
wb.write(fos);
fos.close();
} catch (Exception Ex) {
Logger.getLogger(ExcelOrders.class.getName()).log(Level.SEVERE, null, Ex);
new errorDialog(null, new StringEntered(Ex.getMessage()).getStringEntered(100),
new StringEntered().toString(Ex.getStackTrace()), "Программная ошибка", JOptionPane.ERROR_MESSAGE);
}
}
}
Хочу применить свойства жирности и растягивание по содержимому ячейки к первой строке
Написан небольшой метод
public static CellStyle createHeadingStyle(XSSFWorkbook book) {
XSSFCellStyle style = book.createCellStyle();
XSSFFont fontHeader = book.createFont();
fontHeader.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
style.setFont(fontHeader);
return style;
}
В данном методе шрифт становится жирным во всех ячейках Как мне допилить его чтобы свойство bold применялось к 1 строке и также расширялось по содержимому в ячейки
Расширение сделал. Как установить жирный шрифт только 1 строке?
Нет необходимости создавать новый стиль для каждой ячейки - создайте предварительно 2 стиля: для 1й строки и для всех остальных, и затем используйте их. Код для стилей:
public static CellStyle createBaseStyle(XSSFWorkbook book) {
XSSFCellStyle style = book.createCellStyle();
//необходимые настройки
return style;
}
public static CellStyle createHeadingStyle(XSSFWorkbook book) {
XSSFCellStyle style = book.createCellStyle();
XSSFFont fontHeader = book.createFont();
fontHeader.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
style.setFont(fontHeader);
return style;
}
И измененный вариант заполнения таблицы:
Set<String> ids = data.keySet();
XSSFRow row;
CellStyle baseStyle = styleExcel.createBaseStyle(wb);
CellStyle headingStyle = styleExcel.createHeadingStyle(wb);
int rowId = 0;
for (String key : ids) {
row = ws.createRow(rowId);
Object[] values = data.get(key);
int celId = 0;
for (Object o : values) {
Cell cell = row.createCell(celId++);
cell.setCellValue(o.toString());
cell.setCellStyle(rowId == 0 ? headingStyle: baseStyle);
}
rowId++;
}
UPD для проверки типов значений
for (Object o : values) {
Cell cell = row.createCell(celId++);
if (o instanceof Double) {
cell.setCellValue((Double)o);
} else if (o instanceof Integer) {
cell.setCellValue((Integer)o);
}
// else if прочие типы - decimal и т.д.
else {
cell.setCellValue(o.toString());
}
cell.setCellStyle(rowId == 0 ? headingStyle: baseStyle);
}
Дано: Создается система прохождения различных тестов , для обработки данных было выбрано решение собирать в jsp HashMap состоящий из ключа (ID ответа)...
Допустим есть программа написанная на java Затем пропущена через врапер, получен exe файлНа сколько просто декомпилировать такую программу,...
ArifmeticException не вылетает потому что делимое - вещественный, а не целочисленный тип (был бы int, long и тд
Пытаюсь запустить ChromeDriver на Ubuntu 1604