Mercurial > clickerconvert > clickerconvert
comparison src/xlsx/xlsxconditionalformatting.cpp @ 19:4ecb91aaf33f
Hack dataBar's without gradient
This is a Microsoft extension and there is no built in support
for this. We hardcode what we need here as this is enough for us.
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Wed, 30 Mar 2016 16:56:05 +0200 |
parents | 93d3106bb9a4 |
children |
comparison
equal
deleted
inserted
replaced
18:4f679f613e91 | 19:4ecb91aaf33f |
---|---|
660 QStringList sqref; | 660 QStringList sqref; |
661 foreach (CellRange range, ranges()) | 661 foreach (CellRange range, ranges()) |
662 sqref.append(range.toString()); | 662 sqref.append(range.toString()); |
663 writer.writeAttribute(QStringLiteral("sqref"), sqref.join(QLatin1Char(' '))); | 663 writer.writeAttribute(QStringLiteral("sqref"), sqref.join(QLatin1Char(' '))); |
664 | 664 |
665 const QString extNS = QStringLiteral("http://schemas.microsoft.com/office/spreadsheetml/2009/9/main"); | |
666 const QString xmNS = QStringLiteral("http://schemas.microsoft.com/office/excel/2006/main"); | |
667 | |
665 for (int i=0; i<d->cfRules.size(); ++i) { | 668 for (int i=0; i<d->cfRules.size(); ++i) { |
666 const QSharedPointer<XlsxCfRuleData> &rule = d->cfRules[i]; | 669 const QSharedPointer<XlsxCfRuleData> &rule = d->cfRules[i]; |
667 writer.writeStartElement(QStringLiteral("cfRule")); | 670 writer.writeStartElement(QStringLiteral("cfRule")); |
668 writer.writeAttribute(QStringLiteral("type"), rule->attrs[XlsxCfRuleData::A_type].toString()); | 671 writer.writeAttribute(QStringLiteral("type"), rule->attrs[XlsxCfRuleData::A_type].toString()); |
669 if (rule->dxfFormat.dxfIndexValid()) | 672 if (rule->dxfFormat.dxfIndexValid()) |
696 writer.writeAttribute(QStringLiteral("showValue"), QStringLiteral("0")); | 699 writer.writeAttribute(QStringLiteral("showValue"), QStringLiteral("0")); |
697 d->writeCfVo(writer, rule->attrs[XlsxCfRuleData::A_cfvo1].value<XlsxCfVoData>()); | 700 d->writeCfVo(writer, rule->attrs[XlsxCfRuleData::A_cfvo1].value<XlsxCfVoData>()); |
698 d->writeCfVo(writer, rule->attrs[XlsxCfRuleData::A_cfvo2].value<XlsxCfVoData>()); | 701 d->writeCfVo(writer, rule->attrs[XlsxCfRuleData::A_cfvo2].value<XlsxCfVoData>()); |
699 rule->attrs[XlsxCfRuleData::A_color1].value<XlsxColor>().saveToXml(writer); | 702 rule->attrs[XlsxCfRuleData::A_color1].value<XlsxColor>().saveToXml(writer); |
700 writer.writeEndElement();//dataBar | 703 writer.writeEndElement();//dataBar |
704 writer.writeStartElement(QStringLiteral("extLst")); | |
705 writer.writeStartElement(QStringLiteral("ext")); | |
706 writer.writeNamespace(extNS, QStringLiteral("x14")); | |
707 writer.writeAttribute(QStringLiteral("uri"), | |
708 QStringLiteral("{B025F937-C7B1-47D3-B67F-A62EFF666E3E}")); | |
709 writer.writeStartElement(extNS, QStringLiteral("id")); | |
710 writer.writeCharacters(QStringLiteral("{00000000-000E-0000-0000-000001000000}")); | |
711 writer.writeEndElement(); //id | |
712 writer.writeEndElement(); //ext | |
713 writer.writeEndElement(); //extLst | |
701 } else if (rule->attrs[XlsxCfRuleData::A_type] == QLatin1String("colorScale")) { | 714 } else if (rule->attrs[XlsxCfRuleData::A_type] == QLatin1String("colorScale")) { |
702 writer.writeStartElement(QStringLiteral("colorScale")); | 715 writer.writeStartElement(QStringLiteral("colorScale")); |
703 d->writeCfVo(writer, rule->attrs[XlsxCfRuleData::A_cfvo1].value<XlsxCfVoData>()); | 716 d->writeCfVo(writer, rule->attrs[XlsxCfRuleData::A_cfvo1].value<XlsxCfVoData>()); |
704 d->writeCfVo(writer, rule->attrs[XlsxCfRuleData::A_cfvo2].value<XlsxCfVoData>()); | 717 d->writeCfVo(writer, rule->attrs[XlsxCfRuleData::A_cfvo2].value<XlsxCfVoData>()); |
705 if (rule->attrs.contains(XlsxCfRuleData::A_cfvo3)) | 718 if (rule->attrs.contains(XlsxCfRuleData::A_cfvo3)) |
727 | 740 |
728 writer.writeEndElement(); //cfRule | 741 writer.writeEndElement(); //cfRule |
729 } | 742 } |
730 | 743 |
731 writer.writeEndElement(); //conditionalFormatting | 744 writer.writeEndElement(); //conditionalFormatting |
745 writer.writeStartElement(QStringLiteral("extLst")); | |
746 writer.writeStartElement(QStringLiteral("ext")); | |
747 writer.writeNamespace(extNS, QStringLiteral("x14")); | |
748 writer.writeAttribute(QStringLiteral("uri"), | |
749 QStringLiteral("{78C0D931-6437-407d-A8EE-F0AAD7539E65}")); | |
750 writer.writeStartElement(extNS, QStringLiteral("conditionalFormattings")); | |
751 writer.writeStartElement(extNS, QStringLiteral("conditionalFormatting")); | |
752 writer.writeNamespace(xmNS, QStringLiteral("xm")); | |
753 writer.writeStartElement(extNS, QStringLiteral("cfRule")); | |
754 writer.writeAttribute("type", "dataBar"); | |
755 writer.writeAttribute("id", "{00000000-000E-0000-0000-000001000000}"); | |
756 writer.writeStartElement(extNS, "dataBar"); | |
757 writer.writeAttribute("gradient", "0"); | |
758 writer.writeAttribute("negativeBarColorSameAsPositive", "1"); | |
759 writer.writeAttribute("axisPosition", "none"); | |
760 writer.writeStartElement(extNS, "cfvo"); | |
761 writer.writeAttribute("type", "num"); | |
762 writer.writeStartElement(xmNS, "f"); | |
763 writer.writeCharacters("0"); | |
764 writer.writeEndElement(); // f | |
765 writer.writeEndElement(); // cfvo | |
766 | |
767 writer.writeStartElement(extNS, "cfvo"); | |
768 writer.writeAttribute("type", "num"); | |
769 writer.writeStartElement(xmNS, "f"); | |
770 writer.writeCharacters("100"); | |
771 writer.writeEndElement(); // f | |
772 writer.writeEndElement(); // cfvo | |
773 writer.writeEndElement(); // dataBar | |
774 writer.writeEndElement(); // cfrule | |
775 | |
776 writer.writeStartElement(xmNS, "sqref"); | |
777 writer.writeCharacters(sqref.join(QLatin1Char(' '))); | |
778 writer.writeEndElement(); // sqref | |
779 | |
780 writer.writeEndElement(); // conditionalFormatting | |
781 writer.writeEndElement(); // conditionalFormattings | |
782 | |
783 writer.writeEndElement(); //ext | |
784 writer.writeEndElement(); //extLst | |
732 return true; | 785 return true; |
733 } | 786 } |
734 | 787 |
735 QT_END_NAMESPACE_XLSX | 788 QT_END_NAMESPACE_XLSX |