builtins.py 30 KB

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