Войти
 
 
   
 
  
Новости Notes.ру Библиотека Биржа труда Вопрос - ответ Форум Регистрация Поиск О проекте
Разделы
О Notes
Советы
Шаблоны и примеры
Литература
Презентации
 
Java: внутри файла MS Excel 2007. Часть четвёртая   В публикуемой сегодня части статьи заканчивается описание процедур загрузки электронной таблицы и начинается описание самого интересного - каким образом получить данные, хранящиеся в ячейках таблицы
Шаблоны и примеры Читать статью
 
Java: внутри файла MS Excel 2007. Часть третья   В предлагаемой вниманию читателя третьей части статьи о структуре файла электронной таблицы Microsoft Excel формата 2007 речь идёт о коде Java, "разархивирующем" файловый поток и формирующем объекты, с которыми предстоит взаимодействовать при дальнейшей обработке данных электронной таблицы
Шаблоны и примеры Читать статью
 
Java: внутри файла MS Excel 2007. Часть вторая   В настоящем материале автор постарается систематизировать свои знания о том, как устроено хранение данных электронной таблицы, и презентовать небольшую Java-библиотеку, предоставляющую возможность чтения данных и заполнения файла электронной таблицы Microsoft Excel
Шаблоны и примеры Читать статью
 


Шаблоны и примеры

Главная   Библиотека   Шаблоны и примеры

Java: внутри файла MS Excel 2007. Часть вторая

Продолжение разговора о работе с электронными таблицами,начатого в первой части

Внутри xl/styles.xml

Описание формата ячеек электронной таблицы сохраняется в файле styles.xml, фрагмент которого приведён ниже

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<styleSheet
xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"
...>
<numFmts count="1">
<numFmt numFmtId="164" formatCode="dd/mm/yyyy\ hh:mm"/>
</numFmts>
<fonts count="3" x14ac:knownFonts="1">
<font><sz val="11"/><color theme="1"/><name val="Calibri"/><family val="2"/><charset val="204"/><scheme val="minor"/></font>
<font><sz val="12"/><color theme="1"/><name val="Times New Roman"/><family val="1"/><charset val="204"/></font>
<font><sz val="12"/><color theme="1"/><name val="Times New Roman"/><charset val="204"/></font>
</fonts>
<fills count="4">
<fill><patternFill patternType="none"/></fill>
<fill><patternFill patternType="gray125"/></fill>
<fill><patternFill patternType="solid"><fgColor theme="0" tint="-0.15"/><bgColor indexed="64"/></patternFill></fill>
<fill><patternFill patternType="solid"><fgColor theme="0" tint="-0.15"/><bgColor indexed="64"/></patternFill></fill>
</fills>
<borders count="5">
<border><left/><right/><top/><bottom/><diagonal/></border>
<border><left style="thin"><color auto="1"/></left><right style="thin"><color auto="1"/></right><top style="thin"><color auto="1"/></top><bottom style="thin"><color auto="1"/></bottom><diagonal/></border>
<border><left style="thin"><color auto="1"/></left><right style="thin"><color auto="1"/></right><top style="thin"><color auto="1"/></top><bottom/><diagonal/></border>
...
</borders>
<cellStyleXfs count="1">
<xf numFmtId="0" fontId="0" fillId="0" borderId="0"/>
</cellStyleXfs>
<cellXfs count="17">
<xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0"/>
<xf numFmtId="0" fontId="1" fillId="0" borderId="0" xfId="0" applyFont="1" applyAlignment="1"/>
<xf numFmtId="0" fontId="1" fillId="0" borderId="0" xfId="0" applyFont="1" applyAlignment="1"><alignment wrapText="1"/></xf>
<xf numFmtId="0" fontId="1" fillId="0" borderId="0" xfId="0" applyFont="1" applyAlignment="1"><alignment horizontal="center" vertical="center" wrapText="1"/></xf>
<xf numFmtId="0" fontId="1" fillId="0" borderId="0" xfId="0" applyFont="1" applyAlignment="1"><alignment vertical="top" wrapText="1"/></xf>
...
</cellXfs>
<cellStyles count="1">
<cellStyle name="Обычный" xfId="0" builtinId="0"/>
</cellStyles>
<dxfs count="0"/>
<tableStyles count="0" defaultTableStyle="TableStyleMedium9" defaultPivotStyle="PivotStyleLight16"/>
</styleSheet>

Здесь расположены описания шрифтов, используемых для оформления ячеек электронной таблицы, в блоке fonts, форматы заливки (блок fills) и границ ячеек (блок borders). К этому предстоит вернуться при оформлении собственных файлов электронных таблиц, хотя тут, вроде бы всё понятно и не очень интересно. Может быть, стоит только оговориться, что цвет в элементе color (а также fgColor, bgColor) может быть задан несколькими способами, в том числе, и с помощью атрибута rgb (Например, <color rgb='00000000'/>)

Основной раздел приведённого выше описания, связанный непосредственно с атрибутом s элемента c, задающим формат ячейки, - это раздел cellXfs. Описание формата в его элементах задаётся при помощи атрибута с индексом описания соответствующего параметра (например, borderId="1") или элемента, непосредственно описывающего формат (см. элемент alignment), и атрибута, включающего применение этого параметра, как applyAlignment="1"

Атрибут numFmtId элемента xf задаёт формат значения ячеек. Первые 164 описания (с нулевого по 163-й) формата значений являются зарезервированными, их предописанные значения частично представлены в списке (Список автором взят с ресурса https://stackoverflow.com/questions/4655565/reading-dates-from-openxml-excel-files. Более полный перечень можно найти в MSDN). За "толкованием" дальнейших значений (начиния с numFmtId="164") необходимо обращаться к разделу numFmts файла styles.xml. Значение атрибута numFmtId при этом будет указывать на запись numFmt раздела numFmts с соответствующим атрибутом numFmtId

0 = 'General';

1 = '0';
2 = '0.00';
3 = '#,##0';
4 = '#,##0.00';
5 = '$#,##0;\-$#,##0';
6 = '$#,##0;[Red]\-$#,##0';
7 = '$#,##0.00;\-$#,##0.00';
8 = '$#,##0.00;[Red]\-$#,##0.00';
9 = '0%';
10 = '0.00%';
11 = '0.00E+00';
12 = '# ?/?';
13 = '# ??/??';
14 = 'mm-dd-yy';
15 = 'd-mmm-yy';
16 = 'd-mmm';
17 = 'mmm-yy';
18 = 'h:mm AM/PM';
19 = 'h:mm:ss AM/PM';
20 = 'h:mm';
21 = 'h:mm:ss';
22 = 'm/d/yy h:mm';

37 = '#,##0 ;(#,##0)';
38 = '#,##0 ;[Red](#,##0)';
39 = '#,##0.00;(#,##0.00)';
40 = '#,##0.00;[Red](#,##0.00)';

44 = '_("$"* #,##0.00_);_("$"* \(#,##0.00\);_("$"* "-"??_);_(@_)';
45 = 'mm:ss';
46 = '[h]:mm:ss';
47 = 'mmss.0';
48 = '##0.0E+0';
49 = '@';

27 = '[$-404]e/m/d';
30 = 'm/d/yy';
36 = '[$-404]e/m/d';
50 = '[$-404]e/m/d';
57 = '[$-404]e/m/d';

59 = 't0';
60 = 't0.00';
61 = 't#,##0';
62 = 't#,##0.00';
67 = 't0%';
68 = 't0.00%';
69 = 't# ?/?';
70 = 't# ??/??';

После общего описания структуры данных электронной таблицы в следующей части будет показана работа с ней

Ссылки

Java: внутри файла MS Excel 2007. Часть первая

Java: внутри файла MS Excel 2007. Часть третья

Java: внутри файла MS Excel 2007. Часть четвёртая

Java в Domino. Небольшой пример обработки потока
 
  Опубликовано — 01/29/2022 |    



Добавить комментарий
Имя * :
e-mail
Комментарий * :
Код подтверждения * :


Мероприятия
Пресс-релизы
Биржа труда
Последнее на форуме
 
А так же:
Lotus notes и ЭЦП
29.09.2017 17:16:14
Как удалить профиль?
16.04.2016 00:08:51
Скопировать в буфер поле документа
24.05.2015 08:55:52
 
© LOGOSPHERE.RU