builtins.py 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398
  1. from __future__ import absolute_import
  2. # Copyright (c) 2010-2019 openpyxl
  3. # Builtins styles as defined in Part 4 Annex G.2
  4. from .named_styles import NamedStyle
  5. from openpyxl.xml.functions import fromstring
  6. normal = """
  7. <namedStyle builtinId="0" name="Normal">
  8. <alignment/>
  9. <border>
  10. <left/>
  11. <right/>
  12. <top/>
  13. <bottom/>
  14. <diagonal/>
  15. </border>
  16. <fill>
  17. <patternFill/>
  18. </fill>
  19. <font>
  20. <name val="Calibri"/>
  21. <family val="2"/>
  22. <color theme="1"/>
  23. <sz val="12"/>
  24. <scheme val="minor"/>
  25. </font>
  26. <protection hidden="0" locked="1"/>
  27. </namedStyle>
  28. """
  29. comma = """
  30. <namedStyle builtinId="3" name="Comma">
  31. <alignment/>
  32. <number_format>_-* #,##0.00\\ _$_-;\\-* #,##0.00\\ _$_-;_-* "-"??\\ _$_-;_-@_-</number_format>
  33. <border>
  34. <left/>
  35. <right/>
  36. <top/>
  37. <bottom/>
  38. <diagonal/>
  39. </border>
  40. <fill>
  41. <patternFill/>
  42. </fill>
  43. <font>
  44. <name val="Calibri"/>
  45. <family val="2"/>
  46. <color theme="1"/>
  47. <sz val="12"/>
  48. <scheme val="minor"/>
  49. </font>
  50. <protection hidden="0" locked="1"/>
  51. </namedStyle>
  52. """
  53. comma_0 = """
  54. <namedStyle builtinId="6" name="Comma [0]">
  55. <alignment/>
  56. <number_format>_-* #,##0\\ _$_-;\\-* #,##0\\ _$_-;_-* "-"\\ _$_-;_-@_-</number_format>
  57. <border>
  58. <left/>
  59. <right/>
  60. <top/>
  61. <bottom/>
  62. <diagonal/>
  63. </border>
  64. <fill>
  65. <patternFill/>
  66. </fill>
  67. <font>
  68. <name val="Calibri"/>
  69. <family val="2"/>
  70. <color theme="1"/>
  71. <sz val="12"/>
  72. <scheme val="minor"/>
  73. </font>
  74. <protection hidden="0" locked="1"/>
  75. </namedStyle>
  76. """
  77. currency = """
  78. <namedStyle builtinId="4" name="Currency">
  79. <alignment/>
  80. <number_format>_-* #,##0.00\\ "$"_-;\\-* #,##0.00\\ "$"_-;_-* "-"??\\ "$"_-;_-@_-</number_format>
  81. <border>
  82. <left/>
  83. <right/>
  84. <top/>
  85. <bottom/>
  86. <diagonal/>
  87. </border>
  88. <fill>
  89. <patternFill/>
  90. </fill>
  91. <font>
  92. <name val="Calibri"/>
  93. <family val="2"/>
  94. <color theme="1"/>
  95. <sz val="12"/>
  96. <scheme val="minor"/>
  97. </font>
  98. <protection hidden="0" locked="1"/>
  99. </namedStyle>
  100. """
  101. currency_0 = """
  102. <namedStyle builtinId="7" name="Currency [0]">
  103. <alignment/>
  104. <number_format>_-* #,##0\\ "$"_-;\\-* #,##0\\ "$"_-;_-* "-"\\ "$"_-;_-@_-</number_format>
  105. <border>
  106. <left/>
  107. <right/>
  108. <top/>
  109. <bottom/>
  110. <diagonal/>
  111. </border>
  112. <fill>
  113. <patternFill/>
  114. </fill>
  115. <font>
  116. <name val="Calibri"/>
  117. <family val="2"/>
  118. <color theme="1"/>
  119. <sz val="12"/>
  120. <scheme val="minor"/>
  121. </font>
  122. <protection hidden="0" locked="1"/>
  123. </namedStyle>
  124. """
  125. percent = """
  126. <namedStyle builtinId="5" name="Percent">
  127. <alignment/>
  128. <number_format>0%</number_format>
  129. <border>
  130. <left/>
  131. <right/>
  132. <top/>
  133. <bottom/>
  134. <diagonal/>
  135. </border>
  136. <fill>
  137. <patternFill/>
  138. </fill>
  139. <font>
  140. <name val="Calibri"/>
  141. <family val="2"/>
  142. <color theme="1"/>
  143. <sz val="12"/>
  144. <scheme val="minor"/>
  145. </font>
  146. <protection hidden="0" locked="1"/>
  147. </namedStyle>
  148. """
  149. hyperlink = """
  150. <namedStyle builtinId="8" name="Hyperlink" >
  151. <alignment/>
  152. <border>
  153. <left/>
  154. <right/>
  155. <top/>
  156. <bottom/>
  157. <diagonal/>
  158. </border>
  159. <fill>
  160. <patternFill/>
  161. </fill>
  162. <font>
  163. <name val="Calibri"/>
  164. <family val="2"/>
  165. <color theme="10"/>
  166. <sz val="12"/>
  167. <scheme val="minor"/>
  168. </font>
  169. <protection hidden="0" locked="1"/>
  170. </namedStyle>"""
  171. followed_hyperlink = """
  172. <namedStyle builtinId="9" name="Followed Hyperlink" >
  173. <alignment/>
  174. <border>
  175. <left/>
  176. <right/>
  177. <top/>
  178. <bottom/>
  179. <diagonal/>
  180. </border>
  181. <fill>
  182. <patternFill/>
  183. </fill>
  184. <font>
  185. <name val="Calibri"/>
  186. <family val="2"/>
  187. <color theme="11"/>
  188. <sz val="12"/>
  189. <scheme val="minor"/>
  190. </font>
  191. <protection hidden="0" locked="1"/>
  192. </namedStyle>"""
  193. title = """
  194. <namedStyle builtinId="15" name="Title">
  195. <alignment/>
  196. <border>
  197. <left/>
  198. <right/>
  199. <top/>
  200. <bottom/>
  201. <diagonal/>
  202. </border>
  203. <fill>
  204. <patternFill/>
  205. </fill>
  206. <font>
  207. <name val="Cambria"/>
  208. <family val="2"/>
  209. <b val="1"/>
  210. <color theme="3"/>
  211. <sz val="18"/>
  212. <scheme val="major"/>
  213. </font>
  214. <protection hidden="0" locked="1"/>
  215. </namedStyle>
  216. """
  217. headline_1 = """
  218. <namedStyle builtinId="16" name="Headline 1" >
  219. <alignment/>
  220. <border>
  221. <left/>
  222. <right/>
  223. <top/>
  224. <bottom style="thick">
  225. <color theme="4"/>
  226. </bottom>
  227. <diagonal/>
  228. </border>
  229. <fill>
  230. <patternFill/>
  231. </fill>
  232. <font>
  233. <name val="Calibri"/>
  234. <family val="2"/>
  235. <b val="1"/>
  236. <color theme="3"/>
  237. <sz val="15"/>
  238. <scheme val="minor"/>
  239. </font>
  240. <protection hidden="0" locked="1"/>
  241. </namedStyle>
  242. """
  243. headline_2 = """
  244. <namedStyle builtinId="17" name="Headline 2" >
  245. <alignment/>
  246. <border>
  247. <left/>
  248. <right/>
  249. <top/>
  250. <bottom style="thick">
  251. <color theme="4" tint="0.5"/>
  252. </bottom>
  253. <diagonal/>
  254. </border>
  255. <fill>
  256. <patternFill/>
  257. </fill>
  258. <font>
  259. <name val="Calibri"/>
  260. <family val="2"/>
  261. <b val="1"/>
  262. <color theme="3"/>
  263. <sz val="13"/>
  264. <scheme val="minor"/>
  265. </font>
  266. <protection hidden="0" locked="1"/>
  267. </namedStyle>
  268. """
  269. headline_3 = """
  270. <namedStyle builtinId="18" name="Headline 3" >
  271. <alignment/>
  272. <border>
  273. <left/>
  274. <right/>
  275. <top/>
  276. <bottom style="medium">
  277. <color theme="4" tint="0.4"/>
  278. </bottom>
  279. <diagonal/>
  280. </border>
  281. <fill>
  282. <patternFill/>
  283. </fill>
  284. <font>
  285. <name val="Calibri"/>
  286. <family val="2"/>
  287. <b val="1"/>
  288. <color theme="3"/>
  289. <sz val="11"/>
  290. <scheme val="minor"/>
  291. </font>
  292. <protection hidden="0" locked="1"/>
  293. </namedStyle>
  294. """
  295. headline_4 = """
  296. <namedStyle builtinId="19" name="Headline 4">
  297. <alignment/>
  298. <border>
  299. <left/>
  300. <right/>
  301. <top/>
  302. <bottom/>
  303. <diagonal/>
  304. </border>
  305. <fill>
  306. <patternFill/>
  307. </fill>
  308. <font>
  309. <name val="Calibri"/>
  310. <family val="2"/>
  311. <b val="1"/>
  312. <color theme="3"/>
  313. <sz val="11"/>
  314. <scheme val="minor"/>
  315. </font>
  316. <protection hidden="0" locked="1"/>
  317. </namedStyle>
  318. """
  319. good = """
  320. <namedStyle builtinId="26" name="Good" >
  321. <alignment/>
  322. <border>
  323. <left/>
  324. <right/>
  325. <top/>
  326. <bottom/>
  327. <diagonal/>
  328. </border>
  329. <fill>
  330. <patternFill patternType="solid">
  331. <fgColor rgb="FFC6EFCE"/>
  332. </patternFill>
  333. </fill>
  334. <font>
  335. <name val="Calibri"/>
  336. <family val="2"/>
  337. <color rgb="FF006100"/>
  338. <sz val="12"/>
  339. <scheme val="minor"/>
  340. </font>
  341. <protection hidden="0" locked="1"/>
  342. </namedStyle>
  343. """
  344. bad = """
  345. <namedStyle builtinId="27" name="Bad" >
  346. <alignment/>
  347. <border>
  348. <left/>
  349. <right/>
  350. <top/>
  351. <bottom/>
  352. <diagonal/>
  353. </border>
  354. <fill>
  355. <patternFill patternType="solid">
  356. <fgColor rgb="FFFFC7CE"/>
  357. </patternFill>
  358. </fill>
  359. <font>
  360. <name val="Calibri"/>
  361. <family val="2"/>
  362. <color rgb="FF9C0006"/>
  363. <sz val="12"/>
  364. <scheme val="minor"/>
  365. </font>
  366. <protection hidden="0" locked="1"/>
  367. </namedStyle>
  368. """
  369. neutral = """
  370. <namedStyle builtinId="28" name="Neutral" >
  371. <alignment/>
  372. <border>
  373. <left/>
  374. <right/>
  375. <top/>
  376. <bottom/>
  377. <diagonal/>
  378. </border>
  379. <fill>
  380. <patternFill patternType="solid">
  381. <fgColor rgb="FFFFEB9C"/>
  382. </patternFill>
  383. </fill>
  384. <font>
  385. <name val="Calibri"/>
  386. <family val="2"/>
  387. <color rgb="FF9C6500"/>
  388. <sz val="12"/>
  389. <scheme val="minor"/>
  390. </font>
  391. <protection hidden="0" locked="1"/>
  392. </namedStyle>
  393. """
  394. input = """
  395. <namedStyle builtinId="20" name="Input" >
  396. <alignment/>
  397. <border>
  398. <left style="thin">
  399. <color rgb="FF7F7F7F"/>
  400. </left>
  401. <right style="thin">
  402. <color rgb="FF7F7F7F"/>
  403. </right>
  404. <top style="thin">
  405. <color rgb="FF7F7F7F"/>
  406. </top>
  407. <bottom style="thin">
  408. <color rgb="FF7F7F7F"/>
  409. </bottom>
  410. <diagonal/>
  411. </border>
  412. <fill>
  413. <patternFill patternType="solid">
  414. <fgColor rgb="FFFFCC99"/>
  415. </patternFill>
  416. </fill>
  417. <font>
  418. <name val="Calibri"/>
  419. <family val="2"/>
  420. <color rgb="FF3F3F76"/>
  421. <sz val="12"/>
  422. <scheme val="minor"/>
  423. </font>
  424. <protection hidden="0" locked="1"/>
  425. </namedStyle>
  426. """
  427. output = """
  428. <namedStyle builtinId="21" name="Output" >
  429. <alignment/>
  430. <border>
  431. <left style="thin">
  432. <color rgb="FF3F3F3F"/>
  433. </left>
  434. <right style="thin">
  435. <color rgb="FF3F3F3F"/>
  436. </right>
  437. <top style="thin">
  438. <color rgb="FF3F3F3F"/>
  439. </top>
  440. <bottom style="thin">
  441. <color rgb="FF3F3F3F"/>
  442. </bottom>
  443. <diagonal/>
  444. </border>
  445. <fill>
  446. <patternFill patternType="solid">
  447. <fgColor rgb="FFF2F2F2"/>
  448. </patternFill>
  449. </fill>
  450. <font>
  451. <name val="Calibri"/>
  452. <family val="2"/>
  453. <b val="1"/>
  454. <color rgb="FF3F3F3F"/>
  455. <sz val="12"/>
  456. <scheme val="minor"/>
  457. </font>
  458. <protection hidden="0" locked="1"/>
  459. </namedStyle>
  460. """
  461. calculation = """
  462. <namedStyle builtinId="22" name="Calculation" >
  463. <alignment/>
  464. <border>
  465. <left style="thin">
  466. <color rgb="FF7F7F7F"/>
  467. </left>
  468. <right style="thin">
  469. <color rgb="FF7F7F7F"/>
  470. </right>
  471. <top style="thin">
  472. <color rgb="FF7F7F7F"/>
  473. </top>
  474. <bottom style="thin">
  475. <color rgb="FF7F7F7F"/>
  476. </bottom>
  477. <diagonal/>
  478. </border>
  479. <fill>
  480. <patternFill patternType="solid">
  481. <fgColor rgb="FFF2F2F2"/>
  482. </patternFill>
  483. </fill>
  484. <font>
  485. <name val="Calibri"/>
  486. <family val="2"/>
  487. <b val="1"/>
  488. <color rgb="FFFA7D00"/>
  489. <sz val="12"/>
  490. <scheme val="minor"/>
  491. </font>
  492. <protection hidden="0" locked="1"/>
  493. </namedStyle>
  494. """
  495. linked_cell = """
  496. <namedStyle builtinId="24" name="Linked Cell" >
  497. <alignment/>
  498. <border>
  499. <left/>
  500. <right/>
  501. <top/>
  502. <bottom style="double">
  503. <color rgb="FFFF8001"/>
  504. </bottom>
  505. <diagonal/>
  506. </border>
  507. <fill>
  508. <patternFill/>
  509. </fill>
  510. <font>
  511. <name val="Calibri"/>
  512. <family val="2"/>
  513. <color rgb="FFFA7D00"/>
  514. <sz val="12"/>
  515. <scheme val="minor"/>
  516. </font>
  517. <protection hidden="0" locked="1"/>
  518. </namedStyle>
  519. """
  520. check_cell = """
  521. <namedStyle builtinId="23" name="Check Cell" >
  522. <alignment/>
  523. <border>
  524. <left style="double">
  525. <color rgb="FF3F3F3F"/>
  526. </left>
  527. <right style="double">
  528. <color rgb="FF3F3F3F"/>
  529. </right>
  530. <top style="double">
  531. <color rgb="FF3F3F3F"/>
  532. </top>
  533. <bottom style="double">
  534. <color rgb="FF3F3F3F"/>
  535. </bottom>
  536. <diagonal/>
  537. </border>
  538. <fill>
  539. <patternFill patternType="solid">
  540. <fgColor rgb="FFA5A5A5"/>
  541. </patternFill>
  542. </fill>
  543. <font>
  544. <name val="Calibri"/>
  545. <family val="2"/>
  546. <b val="1"/>
  547. <color theme="0"/>
  548. <sz val="12"/>
  549. <scheme val="minor"/>
  550. </font>
  551. <protection hidden="0" locked="1"/>
  552. </namedStyle>
  553. """
  554. warning = """
  555. <namedStyle builtinId="11" name="Warning Text" >
  556. <alignment/>
  557. <border>
  558. <left/>
  559. <right/>
  560. <top/>
  561. <bottom/>
  562. <diagonal/>
  563. </border>
  564. <fill>
  565. <patternFill/>
  566. </fill>
  567. <font>
  568. <name val="Calibri"/>
  569. <family val="2"/>
  570. <color rgb="FFFF0000"/>
  571. <sz val="12"/>
  572. <scheme val="minor"/>
  573. </font>
  574. <protection hidden="0" locked="1"/>
  575. </namedStyle>
  576. """
  577. note = """
  578. <namedStyle builtinId="10" name="Note" >
  579. <alignment/>
  580. <border>
  581. <left style="thin">
  582. <color rgb="FFB2B2B2"/>
  583. </left>
  584. <right style="thin">
  585. <color rgb="FFB2B2B2"/>
  586. </right>
  587. <top style="thin">
  588. <color rgb="FFB2B2B2"/>
  589. </top>
  590. <bottom style="thin">
  591. <color rgb="FFB2B2B2"/>
  592. </bottom>
  593. <diagonal/>
  594. </border>
  595. <fill>
  596. <patternFill patternType="solid">
  597. <fgColor rgb="FFFFFFCC"/>
  598. </patternFill>
  599. </fill>
  600. <font>
  601. <name val="Calibri"/>
  602. <family val="2"/>
  603. <color theme="1"/>
  604. <sz val="12"/>
  605. <scheme val="minor"/>
  606. </font>
  607. <protection hidden="0" locked="1"/>
  608. </namedStyle>
  609. """
  610. explanatory = """
  611. <namedStyle builtinId="53" name="Explanatory Text" >
  612. <alignment/>
  613. <border>
  614. <left/>
  615. <right/>
  616. <top/>
  617. <bottom/>
  618. <diagonal/>
  619. </border>
  620. <fill>
  621. <patternFill/>
  622. </fill>
  623. <font>
  624. <name val="Calibri"/>
  625. <family val="2"/>
  626. <i val="1"/>
  627. <color rgb="FF7F7F7F"/>
  628. <sz val="12"/>
  629. <scheme val="minor"/>
  630. </font>
  631. <protection hidden="0" locked="1"/>
  632. </namedStyle>
  633. """
  634. total = """
  635. <namedStyle builtinId="25" name="Total" >
  636. <alignment/>
  637. <border>
  638. <left/>
  639. <right/>
  640. <top style="thin">
  641. <color theme="4"/>
  642. </top>
  643. <bottom style="double">
  644. <color theme="4"/>
  645. </bottom>
  646. <diagonal/>
  647. </border>
  648. <fill>
  649. <patternFill/>
  650. </fill>
  651. <font>
  652. <name val="Calibri"/>
  653. <family val="2"/>
  654. <b val="1"/>
  655. <color theme="1"/>
  656. <sz val="12"/>
  657. <scheme val="minor"/>
  658. </font>
  659. <protection hidden="0" locked="1"/>
  660. </namedStyle>
  661. """
  662. accent_1 = """
  663. <namedStyle builtinId="29" name="Accent1" >
  664. <alignment/>
  665. <border>
  666. <left/>
  667. <right/>
  668. <top/>
  669. <bottom/>
  670. <diagonal/>
  671. </border>
  672. <fill>
  673. <patternFill patternType="solid">
  674. <fgColor theme="4"/>
  675. </patternFill>
  676. </fill>
  677. <font>
  678. <name val="Calibri"/>
  679. <family val="2"/>
  680. <color theme="0"/>
  681. <sz val="12"/>
  682. <scheme val="minor"/>
  683. </font>
  684. <protection hidden="0" locked="1"/>
  685. </namedStyle>
  686. """
  687. accent_1_20 = """
  688. <namedStyle builtinId="30" name="20 % - Accent1" >
  689. <alignment/>
  690. <border>
  691. <left/>
  692. <right/>
  693. <top/>
  694. <bottom/>
  695. <diagonal/>
  696. </border>
  697. <fill>
  698. <patternFill patternType="solid">
  699. <fgColor theme="4" tint="0.7999816888943144"/>
  700. <bgColor indexed="65"/>
  701. </patternFill>
  702. </fill>
  703. <font>
  704. <name val="Calibri"/>
  705. <family val="2"/>
  706. <color theme="1"/>
  707. <sz val="12"/>
  708. <scheme val="minor"/>
  709. </font>
  710. <protection hidden="0" locked="1"/>
  711. </namedStyle>
  712. """
  713. accent_1_40 = """
  714. <namedStyle builtinId="31" name="40 % - Accent1" >
  715. <alignment/>
  716. <border>
  717. <left/>
  718. <right/>
  719. <top/>
  720. <bottom/>
  721. <diagonal/>
  722. </border>
  723. <fill>
  724. <patternFill patternType="solid">
  725. <fgColor theme="4" tint="0.5999938962981048"/>
  726. <bgColor indexed="65"/>
  727. </patternFill>
  728. </fill>
  729. <font>
  730. <name val="Calibri"/>
  731. <family val="2"/>
  732. <color theme="1"/>
  733. <sz val="12"/>
  734. <scheme val="minor"/>
  735. </font>
  736. <protection hidden="0" locked="1"/>
  737. </namedStyle>
  738. """
  739. accent_1_60 = """
  740. <namedStyle builtinId="32" name="60 % - Accent1" >
  741. <alignment/>
  742. <border>
  743. <left/>
  744. <right/>
  745. <top/>
  746. <bottom/>
  747. <diagonal/>
  748. </border>
  749. <fill>
  750. <patternFill patternType="solid">
  751. <fgColor theme="4" tint="0.3999755851924192"/>
  752. <bgColor indexed="65"/>
  753. </patternFill>
  754. </fill>
  755. <font>
  756. <name val="Calibri"/>
  757. <family val="2"/>
  758. <color theme="0"/>
  759. <sz val="12"/>
  760. <scheme val="minor"/>
  761. </font>
  762. <protection hidden="0" locked="1"/>
  763. </namedStyle>
  764. """
  765. accent_2 = """<namedStyle builtinId="33" name="Accent2" >
  766. <alignment/>
  767. <border>
  768. <left/>
  769. <right/>
  770. <top/>
  771. <bottom/>
  772. <diagonal/>
  773. </border>
  774. <fill>
  775. <patternFill patternType="solid">
  776. <fgColor theme="5"/>
  777. </patternFill>
  778. </fill>
  779. <font>
  780. <name val="Calibri"/>
  781. <family val="2"/>
  782. <color theme="0"/>
  783. <sz val="12"/>
  784. <scheme val="minor"/>
  785. </font>
  786. <protection hidden="0" locked="1"/>
  787. </namedStyle>"""
  788. accent_2_20 = """
  789. <namedStyle builtinId="34" name="20 % - Accent2" >
  790. <alignment/>
  791. <border>
  792. <left/>
  793. <right/>
  794. <top/>
  795. <bottom/>
  796. <diagonal/>
  797. </border>
  798. <fill>
  799. <patternFill patternType="solid">
  800. <fgColor theme="5" tint="0.7999816888943144"/>
  801. <bgColor indexed="65"/>
  802. </patternFill>
  803. </fill>
  804. <font>
  805. <name val="Calibri"/>
  806. <family val="2"/>
  807. <color theme="1"/>
  808. <sz val="12"/>
  809. <scheme val="minor"/>
  810. </font>
  811. <protection hidden="0" locked="1"/>
  812. </namedStyle>"""
  813. accent_2_40 = """
  814. <namedStyle builtinId="35" name="40 % - Accent2" >
  815. <alignment/>
  816. <border>
  817. <left/>
  818. <right/>
  819. <top/>
  820. <bottom/>
  821. <diagonal/>
  822. </border>
  823. <fill>
  824. <patternFill patternType="solid">
  825. <fgColor theme="5" tint="0.5999938962981048"/>
  826. <bgColor indexed="65"/>
  827. </patternFill>
  828. </fill>
  829. <font>
  830. <name val="Calibri"/>
  831. <family val="2"/>
  832. <color theme="1"/>
  833. <sz val="12"/>
  834. <scheme val="minor"/>
  835. </font>
  836. <protection hidden="0" locked="1"/>
  837. </namedStyle>"""
  838. accent_2_60 = """
  839. <namedStyle builtinId="36" name="60 % - Accent2" >
  840. <alignment/>
  841. <border>
  842. <left/>
  843. <right/>
  844. <top/>
  845. <bottom/>
  846. <diagonal/>
  847. </border>
  848. <fill>
  849. <patternFill patternType="solid">
  850. <fgColor theme="5" tint="0.3999755851924192"/>
  851. <bgColor indexed="65"/>
  852. </patternFill>
  853. </fill>
  854. <font>
  855. <name val="Calibri"/>
  856. <family val="2"/>
  857. <color theme="0"/>
  858. <sz val="12"/>
  859. <scheme val="minor"/>
  860. </font>
  861. <protection hidden="0" locked="1"/>
  862. </namedStyle>"""
  863. accent_3 = """
  864. <namedStyle builtinId="37" name="Accent3" >
  865. <alignment/>
  866. <border>
  867. <left/>
  868. <right/>
  869. <top/>
  870. <bottom/>
  871. <diagonal/>
  872. </border>
  873. <fill>
  874. <patternFill patternType="solid">
  875. <fgColor theme="6"/>
  876. </patternFill>
  877. </fill>
  878. <font>
  879. <name val="Calibri"/>
  880. <family val="2"/>
  881. <color theme="0"/>
  882. <sz val="12"/>
  883. <scheme val="minor"/>
  884. </font>
  885. <protection hidden="0" locked="1"/>
  886. </namedStyle>"""
  887. accent_3_20 = """
  888. <namedStyle builtinId="38" name="20 % - Accent3" >
  889. <alignment/>
  890. <border>
  891. <left/>
  892. <right/>
  893. <top/>
  894. <bottom/>
  895. <diagonal/>
  896. </border>
  897. <fill>
  898. <patternFill patternType="solid">
  899. <fgColor theme="6" tint="0.7999816888943144"/>
  900. <bgColor indexed="65"/>
  901. </patternFill>
  902. </fill>
  903. <font>
  904. <name val="Calibri"/>
  905. <family val="2"/>
  906. <color theme="1"/>
  907. <sz val="12"/>
  908. <scheme val="minor"/>
  909. </font>
  910. <protection hidden="0" locked="1"/>
  911. </namedStyle>"""
  912. accent_3_40 = """
  913. <namedStyle builtinId="39" name="40 % - Accent3" >
  914. <alignment/>
  915. <border>
  916. <left/>
  917. <right/>
  918. <top/>
  919. <bottom/>
  920. <diagonal/>
  921. </border>
  922. <fill>
  923. <patternFill patternType="solid">
  924. <fgColor theme="6" tint="0.5999938962981048"/>
  925. <bgColor indexed="65"/>
  926. </patternFill>
  927. </fill>
  928. <font>
  929. <name val="Calibri"/>
  930. <family val="2"/>
  931. <color theme="1"/>
  932. <sz val="12"/>
  933. <scheme val="minor"/>
  934. </font>
  935. <protection hidden="0" locked="1"/>
  936. </namedStyle>
  937. """
  938. accent_3_60 = """
  939. <namedStyle builtinId="40" name="60 % - Accent3" >
  940. <alignment/>
  941. <border>
  942. <left/>
  943. <right/>
  944. <top/>
  945. <bottom/>
  946. <diagonal/>
  947. </border>
  948. <fill>
  949. <patternFill patternType="solid">
  950. <fgColor theme="6" tint="0.3999755851924192"/>
  951. <bgColor indexed="65"/>
  952. </patternFill>
  953. </fill>
  954. <font>
  955. <name val="Calibri"/>
  956. <family val="2"/>
  957. <color theme="0"/>
  958. <sz val="12"/>
  959. <scheme val="minor"/>
  960. </font>
  961. <protection hidden="0" locked="1"/>
  962. </namedStyle>
  963. """
  964. accent_4 = """
  965. <namedStyle builtinId="41" name="Accent4" >
  966. <alignment/>
  967. <border>
  968. <left/>
  969. <right/>
  970. <top/>
  971. <bottom/>
  972. <diagonal/>
  973. </border>
  974. <fill>
  975. <patternFill patternType="solid">
  976. <fgColor theme="7"/>
  977. </patternFill>
  978. </fill>
  979. <font>
  980. <name val="Calibri"/>
  981. <family val="2"/>
  982. <color theme="0"/>
  983. <sz val="12"/>
  984. <scheme val="minor"/>
  985. </font>
  986. <protection hidden="0" locked="1"/>
  987. </namedStyle>
  988. """
  989. accent_4_20 = """
  990. <namedStyle builtinId="42" name="20 % - Accent4" >
  991. <alignment/>
  992. <border>
  993. <left/>
  994. <right/>
  995. <top/>
  996. <bottom/>
  997. <diagonal/>
  998. </border>
  999. <fill>
  1000. <patternFill patternType="solid">
  1001. <fgColor theme="7" tint="0.7999816888943144"/>
  1002. <bgColor indexed="65"/>
  1003. </patternFill>
  1004. </fill>
  1005. <font>
  1006. <name val="Calibri"/>
  1007. <family val="2"/>
  1008. <color theme="1"/>
  1009. <sz val="12"/>
  1010. <scheme val="minor"/>
  1011. </font>
  1012. <protection hidden="0" locked="1"/>
  1013. </namedStyle>
  1014. """
  1015. accent_4_40 = """
  1016. <namedStyle builtinId="43" name="40 % - Accent4" >
  1017. <alignment/>
  1018. <border>
  1019. <left/>
  1020. <right/>
  1021. <top/>
  1022. <bottom/>
  1023. <diagonal/>
  1024. </border>
  1025. <fill>
  1026. <patternFill patternType="solid">
  1027. <fgColor theme="7" tint="0.5999938962981048"/>
  1028. <bgColor indexed="65"/>
  1029. </patternFill>
  1030. </fill>
  1031. <font>
  1032. <name val="Calibri"/>
  1033. <family val="2"/>
  1034. <color theme="1"/>
  1035. <sz val="12"/>
  1036. <scheme val="minor"/>
  1037. </font>
  1038. <protection hidden="0" locked="1"/>
  1039. </namedStyle>
  1040. """
  1041. accent_4_60 = """
  1042. <namedStyle builtinId="44" name="60 % - Accent4" >
  1043. <alignment/>
  1044. <border>
  1045. <left/>
  1046. <right/>
  1047. <top/>
  1048. <bottom/>
  1049. <diagonal/>
  1050. </border>
  1051. <fill>
  1052. <patternFill patternType="solid">
  1053. <fgColor theme="7" tint="0.3999755851924192"/>
  1054. <bgColor indexed="65"/>
  1055. </patternFill>
  1056. </fill>
  1057. <font>
  1058. <name val="Calibri"/>
  1059. <family val="2"/>
  1060. <color theme="0"/>
  1061. <sz val="12"/>
  1062. <scheme val="minor"/>
  1063. </font>
  1064. <protection hidden="0" locked="1"/>
  1065. </namedStyle>
  1066. """
  1067. accent_5 = """
  1068. <namedStyle builtinId="45" name="Accent5" >
  1069. <alignment/>
  1070. <border>
  1071. <left/>
  1072. <right/>
  1073. <top/>
  1074. <bottom/>
  1075. <diagonal/>
  1076. </border>
  1077. <fill>
  1078. <patternFill patternType="solid">
  1079. <fgColor theme="8"/>
  1080. </patternFill>
  1081. </fill>
  1082. <font>
  1083. <name val="Calibri"/>
  1084. <family val="2"/>
  1085. <color theme="0"/>
  1086. <sz val="12"/>
  1087. <scheme val="minor"/>
  1088. </font>
  1089. <protection hidden="0" locked="1"/>
  1090. </namedStyle>
  1091. """
  1092. accent_5_20 = """
  1093. <namedStyle builtinId="46" name="20 % - Accent5" >
  1094. <alignment/>
  1095. <border>
  1096. <left/>
  1097. <right/>
  1098. <top/>
  1099. <bottom/>
  1100. <diagonal/>
  1101. </border>
  1102. <fill>
  1103. <patternFill patternType="solid">
  1104. <fgColor theme="8" tint="0.7999816888943144"/>
  1105. <bgColor indexed="65"/>
  1106. </patternFill>
  1107. </fill>
  1108. <font>
  1109. <name val="Calibri"/>
  1110. <family val="2"/>
  1111. <color theme="1"/>
  1112. <sz val="12"/>
  1113. <scheme val="minor"/>
  1114. </font>
  1115. <protection hidden="0" locked="1"/>
  1116. </namedStyle>
  1117. """
  1118. accent_5_40 = """
  1119. <namedStyle builtinId="47" name="40 % - Accent5" >
  1120. <alignment/>
  1121. <border>
  1122. <left/>
  1123. <right/>
  1124. <top/>
  1125. <bottom/>
  1126. <diagonal/>
  1127. </border>
  1128. <fill>
  1129. <patternFill patternType="solid">
  1130. <fgColor theme="8" tint="0.5999938962981048"/>
  1131. <bgColor indexed="65"/>
  1132. </patternFill>
  1133. </fill>
  1134. <font>
  1135. <name val="Calibri"/>
  1136. <family val="2"/>
  1137. <color theme="1"/>
  1138. <sz val="12"/>
  1139. <scheme val="minor"/>
  1140. </font>
  1141. <protection hidden="0" locked="1"/>
  1142. </namedStyle>
  1143. """
  1144. accent_5_60 = """
  1145. <namedStyle builtinId="48" name="60 % - Accent5" >
  1146. <alignment/>
  1147. <border>
  1148. <left/>
  1149. <right/>
  1150. <top/>
  1151. <bottom/>
  1152. <diagonal/>
  1153. </border>
  1154. <fill>
  1155. <patternFill patternType="solid">
  1156. <fgColor theme="8" tint="0.3999755851924192"/>
  1157. <bgColor indexed="65"/>
  1158. </patternFill>
  1159. </fill>
  1160. <font>
  1161. <name val="Calibri"/>
  1162. <family val="2"/>
  1163. <color theme="0"/>
  1164. <sz val="12"/>
  1165. <scheme val="minor"/>
  1166. </font>
  1167. <protection hidden="0" locked="1"/>
  1168. </namedStyle>
  1169. """
  1170. accent_6 = """
  1171. <namedStyle builtinId="49" name="Accent6" >
  1172. <alignment/>
  1173. <border>
  1174. <left/>
  1175. <right/>
  1176. <top/>
  1177. <bottom/>
  1178. <diagonal/>
  1179. </border>
  1180. <fill>
  1181. <patternFill patternType="solid">
  1182. <fgColor theme="9"/>
  1183. </patternFill>
  1184. </fill>
  1185. <font>
  1186. <name val="Calibri"/>
  1187. <family val="2"/>
  1188. <color theme="0"/>
  1189. <sz val="12"/>
  1190. <scheme val="minor"/>
  1191. </font>
  1192. <protection hidden="0" locked="1"/>
  1193. </namedStyle>
  1194. """
  1195. accent_6_20 = """
  1196. <namedStyle builtinId="50" name="20 % - Accent6" >
  1197. <alignment/>
  1198. <border>
  1199. <left/>
  1200. <right/>
  1201. <top/>
  1202. <bottom/>
  1203. <diagonal/>
  1204. </border>
  1205. <fill>
  1206. <patternFill patternType="solid">
  1207. <fgColor theme="9" tint="0.7999816888943144"/>
  1208. <bgColor indexed="65"/>
  1209. </patternFill>
  1210. </fill>
  1211. <font>
  1212. <name val="Calibri"/>
  1213. <family val="2"/>
  1214. <color theme="1"/>
  1215. <sz val="12"/>
  1216. <scheme val="minor"/>
  1217. </font>
  1218. <protection hidden="0" locked="1"/>
  1219. </namedStyle>
  1220. """
  1221. accent_6_40 = """
  1222. <namedStyle builtinId="51" name="40 % - Accent6" >
  1223. <alignment/>
  1224. <border>
  1225. <left/>
  1226. <right/>
  1227. <top/>
  1228. <bottom/>
  1229. <diagonal/>
  1230. </border>
  1231. <fill>
  1232. <patternFill patternType="solid">
  1233. <fgColor theme="9" tint="0.5999938962981048"/>
  1234. <bgColor indexed="65"/>
  1235. </patternFill>
  1236. </fill>
  1237. <font>
  1238. <name val="Calibri"/>
  1239. <family val="2"/>
  1240. <color theme="1"/>
  1241. <sz val="12"/>
  1242. <scheme val="minor"/>
  1243. </font>
  1244. <protection hidden="0" locked="1"/>
  1245. </namedStyle>
  1246. """
  1247. accent_6_60 = """
  1248. <namedStyle builtinId="52" name="60 % - Accent6" >
  1249. <alignment/>
  1250. <border>
  1251. <left/>
  1252. <right/>
  1253. <top/>
  1254. <bottom/>
  1255. <diagonal/>
  1256. </border>
  1257. <fill>
  1258. <patternFill patternType="solid">
  1259. <fgColor theme="9" tint="0.3999755851924192"/>
  1260. <bgColor indexed="65"/>
  1261. </patternFill>
  1262. </fill>
  1263. <font>
  1264. <name val="Calibri"/>
  1265. <family val="2"/>
  1266. <color theme="0"/>
  1267. <sz val="12"/>
  1268. <scheme val="minor"/>
  1269. </font>
  1270. <protection hidden="0" locked="1"/>
  1271. </namedStyle>
  1272. """
  1273. pandas_highlight = """
  1274. <namedStyle hidden="0" name="Pandas">
  1275. <alignment horizontal="center"/>
  1276. <border>
  1277. <left style="thin"><color rgb="00000000"/></left>
  1278. <right style="thin"><color rgb="00000000"/></right>
  1279. <top style="thin"><color rgb="00000000"/></top>
  1280. <bottom style="thin"><color rgb="00000000"/></bottom>
  1281. <diagonal/>
  1282. </border>
  1283. <fill>
  1284. <patternFill/>
  1285. </fill>
  1286. <font>
  1287. <b val="1"/>
  1288. </font>
  1289. <protection hidden="0" locked="1"/>
  1290. </namedStyle>
  1291. """
  1292. styles = dict(
  1293. [
  1294. ('Normal', NamedStyle.from_tree(fromstring(normal))),
  1295. ('Comma', NamedStyle.from_tree(fromstring(comma))),
  1296. ('Currency', NamedStyle.from_tree(fromstring(currency))),
  1297. ('Percent', NamedStyle.from_tree(fromstring(percent))),
  1298. ('Comma [0]', NamedStyle.from_tree(fromstring(comma_0))),
  1299. ('Currency [0]', NamedStyle.from_tree(fromstring(currency_0))),
  1300. ('Hyperlink', NamedStyle.from_tree(fromstring(hyperlink))),
  1301. ('Followed Hyperlink', NamedStyle.from_tree(fromstring(followed_hyperlink))),
  1302. ('Note', NamedStyle.from_tree(fromstring(note))),
  1303. ('Warning Text', NamedStyle.from_tree(fromstring(warning))),
  1304. ('Title', NamedStyle.from_tree(fromstring(title))),
  1305. ('Headline 1', NamedStyle.from_tree(fromstring(headline_1))),
  1306. ('Headline 2', NamedStyle.from_tree(fromstring(headline_2))),
  1307. ('Headline 3', NamedStyle.from_tree(fromstring(headline_3))),
  1308. ('Headline 4', NamedStyle.from_tree(fromstring(headline_4))),
  1309. ('Input', NamedStyle.from_tree(fromstring(input))),
  1310. ('Output', NamedStyle.from_tree(fromstring(output))),
  1311. ('Calculation',NamedStyle.from_tree(fromstring(calculation))),
  1312. ('Check Cell', NamedStyle.from_tree(fromstring(check_cell))),
  1313. ('Linked Cell', NamedStyle.from_tree(fromstring(linked_cell))),
  1314. ('Total', NamedStyle.from_tree(fromstring(total))),
  1315. ('Good', NamedStyle.from_tree(fromstring(good))),
  1316. ('Bad', NamedStyle.from_tree(fromstring(bad))),
  1317. ('Neutral', NamedStyle.from_tree(fromstring(neutral))),
  1318. ('Accent1', NamedStyle.from_tree(fromstring(accent_1))),
  1319. ('20 % - Accent1', NamedStyle.from_tree(fromstring(accent_1_20))),
  1320. ('40 % - Accent1', NamedStyle.from_tree(fromstring(accent_1_40))),
  1321. ('60 % - Accent1', NamedStyle.from_tree(fromstring(accent_1_60))),
  1322. ('Accent2', NamedStyle.from_tree(fromstring(accent_2))),
  1323. ('20 % - Accent2', NamedStyle.from_tree(fromstring(accent_2_20))),
  1324. ('40 % - Accent2', NamedStyle.from_tree(fromstring(accent_2_40))),
  1325. ('60 % - Accent2', NamedStyle.from_tree(fromstring(accent_2_60))),
  1326. ('Accent3', NamedStyle.from_tree(fromstring(accent_3))),
  1327. ('20 % - Accent3', NamedStyle.from_tree(fromstring(accent_3_20))),
  1328. ('40 % - Accent3', NamedStyle.from_tree(fromstring(accent_3_40))),
  1329. ('60 % - Accent3', NamedStyle.from_tree(fromstring(accent_3_60))),
  1330. ('Accent4', NamedStyle.from_tree(fromstring(accent_4))),
  1331. ('20 % - Accent4', NamedStyle.from_tree(fromstring(accent_4_20))),
  1332. ('40 % - Accent4', NamedStyle.from_tree(fromstring(accent_4_40))),
  1333. ('60 % - Accent4', NamedStyle.from_tree(fromstring(accent_4_60))),
  1334. ('Accent5', NamedStyle.from_tree(fromstring(accent_5))),
  1335. ('20 % - Accent5', NamedStyle.from_tree(fromstring(accent_5_20))),
  1336. ('40 % - Accent5', NamedStyle.from_tree(fromstring(accent_5_40))),
  1337. ('60 % - Accent5', NamedStyle.from_tree(fromstring(accent_5_60))),
  1338. ('Accent6', NamedStyle.from_tree(fromstring(accent_6))),
  1339. ('20 % - Accent6', NamedStyle.from_tree(fromstring(accent_6_20))),
  1340. ('40 % - Accent6', NamedStyle.from_tree(fromstring(accent_6_40))),
  1341. ('60 % - Accent6', NamedStyle.from_tree(fromstring(accent_6_60))),
  1342. ('Explanatory Text', NamedStyle.from_tree(fromstring(explanatory))),
  1343. ('Pandas', NamedStyle.from_tree(fromstring(pandas_highlight)))
  1344. ]
  1345. )