如何利用pandas将Excel转为html格式

  • Post category:Python

以下是将Excel文件转为html格式的完整实例教程,我会在过程中以两条示例来进行说明:

1. 转换Excel文件为DataFrame对象

要使用pandas将Excel转为HTML格式,我们首先需要将Excel文件转为DataFrame对象。pandas提供了read_excel函数可以处理Excel文件。我们可以使用如下的代码将Excel文件读取为DataFrame对象:

import pandas as pd 
dataframe = pd.read_excel('example.xlsx')

这里的example.xlsx是我们需要转换的Excel文件的文件名。通过这个语句,我们可以得到一个数据框,可以看成是Excel文件的一个矩阵,其中每个格子都对应着Excel文件中的一个单元格。

接下来我们将以简单的案例说明如何将DataFrame对象转为HTML格式:

2. 将DataFrame对象转换为HTML格式

假设我们有一个Excel文件example.xlsx如下所示:

A B
1 Apple Red
2 Orange Orange
3 Banana Yellow
4 Grape Purple

现在我们需要将该文件转为HTML格式并展示在网页中。我们可以使用to_html函数将DataFrame对象转为HTML格式:

html_str = dataframe.to_html(index=False, justify='center')

这里的index=False表示不需要显示行索引,justify=’center’表示文本居中对齐。

通过这个语句,我们可以得到一个字符串html_str,里面包含了DataFrame对象转化后的HTML格式。接下来我们可以将这个html_str嵌入我们的HTML页面中显示出来。

我们通过一个简单的网页来进行演示。只需要在HTML中添加如下代码即可将dataframe以表格的形式嵌入页面中:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Convert Excel to HTML</title>
</head>
<body>
  <h1>Convert Excel to HTML</h1>
  {{ dataframe_table|safe }}
</body>
</html>

在这个HTML页面中,我们将dataframe_table字符串作为一个模板变量进行传递。这里的safe表示我们信任dataframe_table字符串是安全的,可以显示在网页上。如果缺少safe, Flask等框架将会默认对传递过来的字符串进行安全处理,HTML页面中将不会显示表格。

完整的Python代码如下所示:

import pandas as pd 
from flask import Flask, render_template

app = Flask(__name__)

# 读取Excel并转为DataFrame对象
dataframe=pd.read_excel('example.xlsx')

# 将 data frame 转为HTML格式
html_str = dataframe.to_html(index=False, justify='center')

# 定义视图函数
@app.route("/")
def excel_to_html():
    return render_template('index.html', dataframe_table=html_str)

if __name__ == "__main__":
    app.run(debug=True)

示例2

接下来,我们以另一个更加复杂的案例来说明如何使用pandas将Excel文件转为HTML格式。假设我们有一个包含多个工作表的Excel文件,我们需要将这些工作表分别转为HTML格式,并将它们嵌入到不同的页面中展示出来。

假设我们的Excel文件example.xlsx有以下两个工作表Sheet1和Sheet2:

Sheet1

Name Age Gender
1 Alice 19 Female
2 Bob 23 Male
3 Charlie 25 Male
4 David 27 Male

Sheet2

City State Country
1 New York NY USA
2 Washington DC DC USA
3 Delhi Delhi India

我们可以使用以下代码将Sheet1和Sheet2转为html表格:

import pandas as pd 
from flask import Flask, render_template

app = Flask(__name__)

# 读取Excel并转为DataFrame对象
dataframe1=pd.read_excel('example.xlsx', sheet_name='Sheet1')
dataframe2=pd.read_excel('example.xlsx', sheet_name='Sheet2')

# 将 data frame 转为HTML格式
html_str1 = dataframe1.to_html(index=False, justify='center')
html_str2 = dataframe2.to_html(index=False, justify='center')

# 定义视图函数
@app.route("/")
def excel_to_html():
    return render_template('index.html', 
                           dataframe_table1=html_str1, 
                           dataframe_table2=html_str2)

if __name__ == "__main__":
    app.run(debug=True)

在这个代码中,我们使用sheet_name关键字参数来指定读取的工作表。同时,我们将两个数据框分别转换为了html_str1和html_str2两个字符串。最后,在模板中,我们将这两个字符串分别传递给了两个模板变量dataframe_table1和dataframe_table2来分别展示Sheet1和Sheet2的内容。

以上是我对使用pandas将Excel文件转为HTML格式的完整实例教程。 谢谢。