Изменение размера границ ячеек в PHPExcel


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

1 2

1 ответ:

Стили границ 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>