Изменения в общедоступном API в Aspose.Cells 8.0.0
Добавлено свойство MemorySetting для LoadOptions и WorkbookSettings.
Начиная с версии v8.0.0 Aspose.Cells for Java, мы предоставили параметры использования памяти для улучшения производительности. Теперь свойство MemorySetting доступно в классах LoadOptions и WorkbookSettings.
Пример
Демонстрирует, как читать файл Excel (большого размера) в оптимизированном режиме.
Java
//Initialize LoadOptions
LoadOptions options = new LoadOptions();
//Set memory preferences
options.setMemorySetting(MemorySetting.MEMORY_PREFERENCE);
//Instantiate the Workbook with an object of LoadOptions
Workbook book = new Workbook(myDir + "large.xlsx", options);
Демонстрирует, как записать большой набор данных на лист в оптимизированном режиме.
Java
//Instantiate a new Workbook
Workbook book = new Workbook();
//Set the memory preferences for WorkbookSettings
book.getSettings().setMemorySetting(MemorySetting.MEMORY_PREFERENCE);
//Input large data into the cells
//.........
Изменилась реализации классов Row и Cell
В предыдущих версиях объекты Row и Cell хранились в памяти для представления соответствующих строки и ячейки в рабочем листе. Тот же экземпляр возвращался, когда извлекался RowCollection[int index] или Cells[int row, int column]. В целях оптимизации памяти теперь в памяти будут храниться только свойства и данные Row и Cell. Следовательно, объекты Row и Cell стали оболочкой вышеперечисленных свойств.
Пример
Демонстрирует, как сравнивать объекты Cell и Row отныне.
Java
//..
row1.equals(row2);
cell1.equals(cell2);
//..
Поскольку объекты Row и Cell создаются в зависимости от вызова, они не будут храниться и управляться в памяти компонентом Cells. Поэтому после некоторых операций вставки и удаления индексы Row и Column могут не обновляться, или эти объекты могут стать недействительными.
Пример
Например, следующий фрагмент кода будет возвращать недействительные результаты при использовании версии 8.0.0 и выше.
Java
Cell cell = cells.get("A2");
System.out.println(cell.getName() + ":" + cell.getValue());
cells.insertRange(CellArea.createCellArea("A1", "A1"), ShiftType.DOWN);
System.out.println(cell.getName() + ":" + cell.getValue());
В новой версии объект Cell станет недействительным или будет ссылаться на ячейку A2 с нежелательным значением. Чтобы избежать такой ситуации, необходимо снова получить объекты Row или Cell из коллекции ячеек, чтобы получить правильный результат.
Java
Cell cell = cells.get("A2");
System.out.println(cell.getName() + ":" + cell.getValue());
cells.insertRange(CellArea.createCellArea("A1", "A1"), ShiftType.DOWN);
//Fetch the cell reference again
Cell cell = cells.get("A3");
System.out.println(cell.getName() + ":" + cell.getValue());
Изменено поведение метода Cell.StringValue
В предыдущих версиях специальный шаблон _ игнорировался при форматировании значений ячеек, в то время как специальный символ * всегда давал один символ в отформатированном результате. С этой версии мы изменили логику обработки специальных символов _ и , чтобы отформатированный результат соответствовал результату, полученному в приложении Excel. Например, пользовательский формат ячейки “_($ #,##0.00_)” для значения 123 ранее давал результат “$ 123.00”. В новых версиях Cell.StringValue будет содержать результат “$123.00”, что соответствует поведению приложения Excel при копировании ячейки в текст или экспорте в CSV.
Добавлено поле CreatedTime в PdfSaveOptions
Теперь пользователи могут получить или установить время создания PDF при сохранении электронной таблицы в PDF с использованием класса PdfSaveOptions.
Добавлено свойство ShowFormulas для Worksheet
Отныне пользователи могут использовать булево свойство ShowFormulas, предлагаемое классом Worksheet, для переключения между отображением формулы и значения на заданном рабочем листе.
Добавлена константа Ooxml к классу FileFormatType
В класс FileFormatType добавлена новая константа Ooxml для представления зашифрованного файла Office Open XML, такого как XLSX, DOCX, PPTX и других.
Устарел класс FilterColumnCollection AutoFilter
С Aspose.Cells for Java метод getFilterColumnCollection был помечен как устаревший. Рекомендуется использовать метод AuotFilter.getFilterColumns вместо него.
Заменено SeriesCollection.SecondCatergoryData на SeriesCollection.SecondCategoryData
Мы исправили опечатку в имени метода SeriesCollection.getSecondCatergoryData. Теперь следует использовать метод SeriesCollection.getSecondCategoryData, а исходный метод SeriesCollection.getSecondCatergoryData помечен как устаревший.