jxl разработан для повышения эффективности чтения (поскольку это основное использование API).Чтобы повысить производительность, данные, которые относятся к выходной информации (например, ко всей информации форматирования, такой как шрифты), не интерпретируются при чтении электронной таблицы, поскольку это является излишним при запросе значений необработанных данных.
Однако, если нам нужно изменить эту электронную таблицу, необходим дескриптор для различных интерфейсов записи, который можно получить с помощью метода копирования.
Workbook workbook = Workbook.getWorkbook(new File("myfile.xls"));
WritableWorkbook copy = Workbook.createWorkbook(new File("temp.xls"), workbook);
Это копирует информацию, которая уже была прочитана, а также выполняетдополнительная обработка для интерпретации полей, необходимых для написания электронных таблиц.Недостаток этой оптимизированной для чтения стратегии состоит в том, что у нас в памяти две таблицы, а не одна, что удваивает требования к памяти.
Но после этого вы можете делать все, что захотите.Как:
WritableSheet sheet2 = copy.getSheet(1);
WritableCell cell = sheet2.getWritableCell(1, 2);
if (cell.getType() == CellType.LABEL)
{
Label l = (Label) cell;
l.setString("modified cell");
}
copy.write();
copy.close();
workbook.close();
Примечание: это прямо взято со учебной страницы Энди Хана .