Научная статья на тему 'Современные средства чтения и записи электронных таблиц формата xls'

Современные средства чтения и записи электронных таблиц формата xls Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
182
74
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЭЛЕКТРОННЫЕ ТАБЛИЦЫ / ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ / EXCEL / API

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Астапов В. А., Шалин А. Ф., Костюков К. И., Щеголев А. А.

Современные средства работы с файлами табличного типа xls значительно шагнули вперед по удобству и производительности работы. Разработчику следует уделять внимание лишь техническим аспектам такой работы — например, хватит ли RAM-памяти под вновь создаваемый файл. Использование таких средств, как JExcelApi, позволяет значительно облегчить задачу обработки файлов электронных документов офисного типа.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Астапов В. А., Шалин А. Ф., Костюков К. И., Щеголев А. А.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Современные средства чтения и записи электронных таблиц формата xls»

УДК 004.4

Современные средства чтения и записи электронных таблиц формата х^.

В.А. Астапов, инженер-программист, А.Ф. Шалин, гл. специалист по информационной безопасности ГНУ СНИИЖК Россельхозакадемии

К.И. Костюков, к. эконом. н., А.А Щеголев ст. преподаватель,

ГОУ ВПО «Московский государственный гуманитарный университет

имени М. А. Шолохова»

Формат электронной таблицы xls давно зарекомендовал себя как наиболее популярный и удобный. Каждый, кто работает с электронными таблицами в программах Microsoft Excel или OpenOffice Calc, сталкивался с этим форматом данных. Xls - это бинарный формат файла электронной таблицы, по умолчанию использующийся в Excel вплоть до версии 2003 включительно. Данные в таблице хранятся в ячейках, каждая из которых имеет определенный адрес (колонки нумеруются английскими буквами, строки - цифрами; например: A1 -левая верхняя ячейка). Каждая ячейка может содержать как фиксированные данные, так и формулы, часто связанные с данными в других ячейках. Формат xls позволяет пользователю изменять представление текста: его шрифт, цвет, начертание, выравнивание (в ячейке) и другие параметры. Кроме того, таблица может содержать изображения, а также диаграммы, построенные на основе данных в определенных ячейках.

В разработке программных средств для чтения и записи в данный формат возможно использовать различные средства. На нынешний день среди opensourse-средств наиболее распространены:

• Apache POI. Данная библиотека позиционируется как Java API для работы с различными типами форматов файлов Microsoft.

• OpenXls. Активно развивающийся проект, направленный конкретно на работу с форматом xls.

• JExcelApi. Еще один проект для работы с форматом xls, выделяющийся своей детальной проработкой в этой области и наиболее удобным для разработчиков инструментарием.

• jXLS. Проект достаточной молодой и может содержать ошибки. Однако возможности гораздо шире, как у Apache POI.

• xlSQL. С помощью средств xlSQL можно обращаться к различным типам файлов, в том числе и xls, как к базе данных, путем запросов.

• jCOM. С помощью данного инструментария можно работать с файлами формата xls, используя COM-соединения.

Для исследования возможностей чтения и записи формата х^ рассмотрен проект JExcelApi как наиболее удобный в использовании. Основные возможности JExcelApi:

• Чтение данных с таблиц формата xls.

• Чтение и запись формул.

• Создание таблиц формата xls.

• Поддержка форматирования шрифта, числовых значений и значений типа «дата».

• Поддержка рисования границ ячеек и цвета фона.

• Создание и последующее изменение таблиц формата xls.

• Поддержка большинства языков.

• Возможность копирования графиков.

• Возможность вставки и копирования изображений в табличный лист.

Для получения данных из xls-файла используется стандартный поток чтения файлов. Единожды «получив» файл на чтение, можно обращаться к информации в ячейках. Workbook workbook = Workbook.getWorkbook(new File("myfile.xls"));

Как и во всех похожих случаях чтения файлов, после окончания работы с файлом его требуется «закрыть» (для завершения потока чтения и освобождения ресурса). workbook.close();

При чтении файлов xls, JExcelApi может автоматически определять тип ячейки для дальнейшей корректной работы с данными.

if (a1.getType() == CellType.LABEL)

LabelCell lc = (LabelCell) a1; stringa1 = lc.getString();

if (b2.getType() == CellType.NUMBER)

NumberCell nc = (NumberCell) b2; numberb2 = nc.getValue();

if (c2.getType() == CellType.DATE)

DateCell dc = (DateCell) c2; datec2 = dc.getDate();

Для записи в xls-файл требуется создание так называемого «записываемого» листа. Средствами JExcelApi запись в уже существующие файлы не реализована. Записываемый лист создается на основании файла-шаблона.

WritableWorkbook workbook = Workbook.createWorkbook(new File("output.xls"));

При записи данных в ячейки записываемого листа необходимо самостоятельно определять тип значения. Number number = new Number(3, 4, 3.1459); sheet.addCell(number);

По окончании работы с записываемым листом требуется его закрыть для записи в файловую систему.

workbook.write(); workbook.close();

При работе с ячейками возможно указание форматирования — шрифт, разрядность чисел, формат даты, цвет и границы ячейки. WritableCellFormat floatFormat = new WritableCellFormat (NumberFormats.FLOAT); Number number3 = new Number(1, 4, 3.141519, floatFormat); sheet.addCell(number3);

NumberFormat fivedps = new NumberFormat("#.#####");

WritableCellFormat fivedpsFormat = new WritableCellFormat(fivedps);

Number number4 = new Number(2, 4, 3.141519, fivedpsFormat);

sheet.addCell(number4);

Date now = Calendar.getInstance().getTime();

DateFormat customDateFormat = new DateFormat ("dd MMM yyyy hh:mm:ss"); WritableCellFormat dateFormat = new WritableCellFormat (customDateFormat); DateTime dateCell = new DateTime(0, 6, now, dateFormat); sheet.addCell(dateCell);

Таким образом, современные средства работы с файлами табличного типа xls значительно шагнули вперед по удобству и производительности работы. Разработчику следует уделять внимание лишь техническим аспектам такой работы — например, хватит ли RAM-памяти под вновь создаваемый файл. Использование таких средств, как JExcelApi, позволяет значительно облегчить задачу обработки файлов электронных документов офисного типа.

i Надоели баннеры? Вы всегда можете отключить рекламу.