I have the following code in Python to generate two tables using ReportLab.
Is there a way to position these two tables side by side using ReportLab?
from reportlab.lib import colors
from reportlab.lib.pagesizes import letter, inch
from reportlab.platypus import SimpleDocTemplate, Table, TableStyle
doc = SimpleDocTemplate("simple_table_grid.pdf", pagesize=letter)
elements = []
data= [['00', '01', '02', '03', '04','10', '11', '12', '13', '14'],
['10', '11', '12', '13', '14', '10', '11', '12', '13', '14'],
['20', '21', '22', '23', '24', '10', '11', '12', '13', '14'],
['30', '31', '32', '33', '34', '10', '11', '12', '13', '14']]
t=Table(data,5*[0.3*inch], 4*[0.2*inch])
t.setStyle(TableStyle([
('BACKGROUND',(0,0),(4,0),colors.gray),
('INNERGRID', (0,0), (-1,-1), 0.25, colors.black),
('BOX', (0,0), (-1,-1), 0.25, colors.black),
]))
elements.append(t)
data= [['100', '01', '02', '03', '04'],
['10', '11', '12', '13', '14'],
['20', '21', '22', '23', '24'],
['30', '31', '32', '33', '34']]
t=Table(data,5*[0.3*inch], 4*[0.2*inch])
t.setStyle(TableStyle([
('BACKGROUND',(0,0),(4,0),colors.gray),
('INNERGRID', (0,0), (-1,-1), 0.25, colors.black),
('BOX', (0,0), (-1,-1), 0.25, colors.black),
]))
elements.append(t)
doc.build(elements)
Create a third table that will serve as the shell for the two tables you created. This table will have two columns and one row. Each column will be the size of the respective child table.
Example:
create your two tables in different table vars (e.g. table1, table2)
t1_w = <your first table width size>
t2_w = <your second table width size>
data = [[table1, table2]]
shell_table = Table(data, colWidths=[t1_w, t2_w])
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With