- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 PrettyTable 创建了一个表。我想将输出保存为 .pdf 文件,但我唯一能做的就是将其保存为 .txt。
如何保存为.pdf文件?我安装了 FPDF 库,但我坚持使用它。
# my table is saved as 'data' variable name
# I saved the table ('data') as .txt file
data = x.get_string()
with open('nameoffile.txt', 'w') as f:
f.write(data)
print(data)
最佳答案
PrettyTable 不用于将数据导出到 pdf 文件。用于显示ASCII表。
以下代码是解决您问题的自制方法。
假设您有这个要导出的漂亮表:
from prettytable import PrettyTable
x = PrettyTable()
x.field_names = ["City name", "Area", "Population", "Annual Rainfall"]
x.add_row(["Adelaide", 1295, 1158259, 600.5])
x.add_row(["Brisbane", 5905, 1857594, 1146.4])
x.add_row(["Darwin", 112, 120900, 1714.7])
x.add_row(["Hobart", 1357, 205556, 619.5])
x.add_row(["Sydney", 2058, 4336374, 1214.8])
x.add_row(["Melbourne", 1566, 3806092, 646.9])
x.add_row(["Perth", 5386, 1554769, 869.4])
def get_data_from_prettytable(data):
"""
Get a list of list from pretty_data table
Arguments:
:param data: data table to process
:type data: PrettyTable
"""
def remove_space(liste):
"""
Remove space for each word in a list
Arguments:
:param liste: list of strings
"""
list_without_space = []
for mot in liste: # For each word in list
word_without_space = mot.replace(' ', '') # word without space
list_without_space.append(word_without_space) # list of word without space
return list_without_space
# Get each row of the table
string_x = str(x).split('\n') # Get a list of row
header = string_x[1].split('|')[1: -1] # Columns names
rows = string_x[3:len(string_x) - 1] # List of rows
list_word_per_row = []
for row in rows: # For each word in a row
row_resize = row.split('|')[1:-1] # Remove first and last arguments
list_word_per_row.append(remove_space(row_resize)) # Remove spaces
return header, list_word_per_row
from fpdf import FPDF
def export_to_pdf(header, data):
"""
Create a a table in PDF file from a list of row
:param header: columns name
:param data: List of row (a row = a list of cells)
:param spacing=1:
"""
pdf = FPDF() # New pdf object
pdf.set_font("Arial", size=12) # Font style
epw = pdf.w - 2*pdf.l_margin # Witdh of document
col_width = pdf.w / 4.5 # Column width in table
row_height = pdf.font_size * 1.5 # Row height in table
spacing = 1.3 # Space in each cell
pdf.add_page() # add new page
pdf.cell(epw, 0.0, 'My title', align='C') # create title cell
pdf.ln(row_height*spacing) # Define title line style
# Add header
for item in header: # for each column
pdf.cell(col_width, row_height*spacing, # Add a new cell
txt=item, border=1)
pdf.ln(row_height*spacing) # New line after header
for row in data: # For each row of the table
for item in row: # For each cell in row
pdf.cell(col_width, row_height*spacing, # Add cell
txt=item, border=1)
pdf.ln(row_height*spacing) # Add line at the end of row
pdf.output('simple_demo.pdf') # Create pdf file
pdf.close() # Close file
最后,你只需要调用这两个方法:
header, data = get_data_from_prettytable(x)
export_to_pdf(header, data)
关于python-3.x - 从 PrettyTable 到 pdf 的表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56018608/
我无法“pip install prettytable”。安装它的最佳选择是什么? % sudo pip -vvv install prettytable Downloading/unpacking
是否可以在漂亮的列中获得不同的长度?当我尝试在 PrettyTable 中使用列表时,出现错误:列长度不匹配。因为一个列表中的项目比另一个列表中的项目多。 示例: ListA = ("111", "2
我想用值来格式化一个漂亮的标题,但我不能。 from prettytable import PrettyTable name = "table 1" table = PrettyTable() own
所以,我有一张 table (PrettyTable),我想让它们尽可能宽。例如,第一列的宽度应为 5px,第二列的宽度应为 18px,依此类推... 我怎样才能做到这一点? 最佳答案 PrettyT
使用prettytable时是否可以获取特定单元格的值? ? 我有以下代码来遍历一个简单表格的所有行。 from prettytable import PrettyTable table = Pret
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 8 年前。 Improve t
我做了一个乘法表,但我必须手动输入代码才能添加到我的表中。我想写一个为我做的循环,这样只要我告诉它,乘法表就可以继续下去。现在它仅限于我愿意编写代码的次数。 lista = [] def mult(z
我正在解析一个文本文件并将我需要的信息提取到一个漂亮的表中。但是,我无法将表格写成一个表格,它输出为每个项目的单个表格。 我的输出表格的代码: f = open("out2.txt", "w") fo
我正在学习使用劳工统计局的 API 从他们的 API 中提取数据。示例代码: import requests import json import prettytable headers = {'Co
代码如下: from prettytable import PrettyTable import requests def market_table(): api = "https://api
我正在使用 pretty-table 在 python 中创建一个表,并尝试让一列的 url 具有可点击的链接: 例如: filepath = "pretty_table.html" from pre
我刚刚安装了pip,安装了几个包np。我试过这个 pip install prettytable Collecting prettytable From cffi callback : Traceba
我使用 PrettyTable 创建了一个表。我想将输出保存为 .pdf 文件,但我唯一能做的就是将其保存为 .txt。 如何保存为.pdf文件?我安装了 FPDF 库,但我坚持使用它。 # my t
我刚装了pip,装了几个包np.我试过了 pip install prettytable Collecting prettytable From cffi callback : Traceback (
我是一名优秀的程序员,十分优秀!