Изменение размера границ ячеек в PHPExcel - PullRequest
2 голосов
/ 27 февраля 2012

Стили границ PHPExcel определены как константы в классе PHPExcel_Style_Border. Твердые из них BORDER_THIN, BORDER_MEDIUM и BORDER_THICK. Тем не менее, средние и толстые слишком толстые для моих нужд. Есть ли способ вручную установить толщину границы?

1 Ответ

3 голосов
/ 27 февраля 2012

Стили границ PHPExcel определены для имитации тех, которые доступны в самом MS Excel. Спецификация ECMA OfficeOpenXML (3-е издание) определяет доступные стили границ в разделе ST_BorderStyle документа (раздел 18.18.3, страницы 2671-2673) и определяется в xsd как:

<xsd:simpleType name="ST_BorderStyle">
    <xsd:restriction base="xsd:string">
    <xsd:enumeration value="none"/>
    <xsd:enumeration value="thin"/>
    <xsd:enumeration value="medium"/>
    <xsd:enumeration value="dashed"/>
    <xsd:enumeration value="dotted"/>
    <xsd:enumeration value="thick"/>
    <xsd:enumeration value="double"/>
    <xsd:enumeration value="hair"/>
    <xsd:enumeration value="mediumDashed"/>
    <xsd:enumeration value="dashDot"/>
    <xsd:enumeration value="mediumDashDot"/>
    <xsd:enumeration value="dashDotDot"/>
    <xsd:enumeration value="mediumDashDotDot"/>
    <xsd:enumeration value="slantDashDot"/>
</xsd:restriction>

Далее следует список стилей границ, определенных для формата файла BIFF, и я не могу найти никаких условий для определения пользовательских стилей или размеров.

EDIT

Стиль сложной границы просто добавляет информацию о цвете к форматированию

<xsd:complexType name="CT_Border">
    <xsd:sequence>
        <xsd:element name="start" type="CT_BorderPr" minOccurs="0" maxOccurs="1"/>
        <xsd:element name="end" type="CT_BorderPr" minOccurs="0" maxOccurs="1"/>
        <xsd:element name="top" type="CT_BorderPr" minOccurs="0" maxOccurs="1"/>
        <xsd:element name="bottom" type="CT_BorderPr" minOccurs="0" maxOccurs="1"/>
        <xsd:element name="diagonal" type="CT_BorderPr" minOccurs="0" maxOccurs="1"/>
        <xsd:element name="vertical" type="CT_BorderPr" minOccurs="0" maxOccurs="1"/>
        <xsd:element name="horizontal" type="CT_BorderPr" minOccurs="0" maxOccurs="1"/>
    </xsd:sequence>
    <xsd:attribute name="diagonalUp" type="xsd:boolean" use="optional"/>
    <xsd:attribute name="diagonalDown" type="xsd:boolean" use="optional"/>
    <xsd:attribute name="outline" type="xsd:boolean" use="optional" default="true"/>
</xsd:complexType>
<xsd:complexType name="CT_BorderPr">
    <xsd:sequence>
        <xsd:element name="color" type="CT_Color" minOccurs="0" maxOccurs="1"/>
    </xsd:sequence>
    <xsd:attribute name="style" type="ST_BorderStyle" use="optional" default="none"/>
</xsd:complexType>
...