Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
andrejnazarukk:25.7.2017 10:53

Zdravím,

mám takú otázku keďže to už nemôžem vygoogliť.
Potrebujem do pdfka vytvoriť tabuľku a potom následne z tej tabulky urobiť graf. Všetko by to malo byť na jednej strane,.

Môj kód je:

from reportlab.lib import colors
from reportlab.lib­.pagesizes import letter, cm, inch, A4, landscape
from reportlab.platypus import Image, SimpleDocTemplate, Table, TableStyle, Paragraph
from reportlab.lib­.styles import getSampleStyleSheet
from reportlab.grap­hics.charts.li­necharts import HorizontalLineChart
from reportlab.grap­hics.shapes import Drawing

doc = SimpleDocTempla­te("skuskaTabul­kySGrafom.pdf", pagesize=A4, rightMargin=30,lef­tMargin=30, topMargin=30,bot­tomMargin=18)
doc.pagesize = landscape(A4)
elements = []

data = [

["18", "56", "3", "22"],
["17", "23", "45", "89"],
["21", "38", "4", "99"],

]

style = TableStyle([('A­LIGN',(1,1),(-2,-2),'RIGHT'),
('TEXTCOLOR',(1,1),(-2,-2),colors.red),
('VALIGN',(0,0),(0,-1),'TOP'),
('TEXTCOLOR',(0,0),(­0,-1),colors.blue),
('ALIGN',(0,-1),(-1,-1),'CENTER'),
('VALIGN',(0,-1),(-1,-1),'MIDDLE'),
('TEXTCOLOR',(0,-1),(-1,-1),colors.green),
('INNERGRID', (0,0), (-1,-1), 0.25, colors.black),
('BOX', (0,0), (-1,-1), 0.25, colors.black),
])

s = getSampleStyleShe­et()
s = s["BodyText"]
s.wordWrap = 'CJK'
data2 = [[Paragraph(cell, s) for cell in row] for row in data]
t=Table(data2)
t.setStyle(style)

elements.append(t)
doc.build(elements)

d = Drawing(400, 200)

lc = HorizontalLineChar­t()
lc.x = 50
lc.y = 50
lc.height = 125
lc.width = 300
lc.data = data
lc.joinedLines = 2
catNames = 'Jan Feb Mar Apr May Jun Jul Aug'.split(' ')
lc.categoryAxis­.categoryNames = catNames
lc.categoryAxis­.labels.boxAn­chor = 'n'
lc.valueAxis.va­lueMin = 0
lc.valueAxis.va­lueMax = 60
lc.valueAxis.va­lueStep = 15
lc.lines[0].stro­keWidth = 2
lc.lines[1].stro­keWidth = 1.5
lc.lines[2].stro­keWidth = 1
d.add(lc)

ide o to že pdfko sa vytvori ale je tam len tabuľka graf tam nieje a neviem čo mam použiť aby sa ten graf uložil do toho pdfka prikaz d.save() mi hádže error

Nejaké rady ?
ďakujem

 
Odpovědět
25.7.2017 10:53
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 1 zpráv z 1.