@@ -733,25 +733,30 @@ blockToOpenXML opts (Table caption aligns widths headers rows) = do
733 if null contents
733 if null contents
734 then emptyCell
734 then emptyCell
735 else contents
735 else contents
736− let mkrow border cells = mknode "w:tr" [] $ map (mkcell border) cells
736+ let mkrow border cells = mknode "w:tr" [] $
737+ [mknode "w:trPr" [] [
738+ mknode "w:cnfStyle" [("w:firstRow","1")] ()] | border]
739+ ++ map (mkcell border) cells
737 let textwidth = 7920 -- 5.5 in in twips, 1/20 pt
740 let textwidth = 7920 -- 5.5 in in twips, 1/20 pt
738 let fullrow = 5000 -- 100% specified in pct
741 let fullrow = 5000 -- 100% specified in pct
739 let rowwidth = fullrow * sum widths
742 let rowwidth = fullrow * sum widths
740 let mkgridcol w = mknode "w:gridCol"
743 let mkgridcol w = mknode "w:gridCol"
741 [("w:w", show (floor (textwidth * w) :: Integer))] ()
744 [("w:w", show (floor (textwidth * w) :: Integer))] ()
745+ let hasHeader = not (all null headers)
743 caption' ++
747 caption' ++
744 [mknode "w:tbl" []
748 [mknode "w:tbl" []
745 ( mknode "w:tblPr" []
749 ( mknode "w:tblPr" []
746 ( mknode "w:tblStyle" [("w:val","TableNormal")] () :
750 ( mknode "w:tblStyle" [("w:val","TableNormal")] () :
747 mknode "w:tblW" [("w:type", "pct"), ("w:w", show rowwidth)] () :
751 mknode "w:tblW" [("w:type", "pct"), ("w:w", show rowwidth)] () :
752+ mknode "w:tblLook" [("w:firstRow","1") | hasHeader ] () :
748 [ mknode "w:tblCaption" [("w:val", captionStr)] ()
753 [ mknode "w:tblCaption" [("w:val", captionStr)] ()
749 | not (null caption) ] )
754 | not (null caption) ] )
750 : mknode "w:tblGrid" []
755 : mknode "w:tblGrid" []
751 (if all (==0) widths
756 (if all (==0) widths
753 else map mkgridcol widths)
758 else map mkgridcol widths)
754− : [ mkrow True headers' | not (all null headers) ] ++
759+ : [ mkrow True headers' | hasHeader ] ++
755 map (mkrow False) rows'
760 map (mkrow False) rows'
757blockToOpenXML opts (BulletList lst) = do
762blockToOpenXML opts (BulletList lst) = do