簡體   English   中英

使用python將csv文件轉換為html中的可編輯表

[英]csv file to editable table in html using python

我有一個 csv 文件。 我已經轉換成html文件。 如何使 html 表可從 python 編輯

import pandas as pd
df=pd.read_csv("D:/valli/abc.csv")
df.to_html("x.html")

我不知道如何繼續使用 flask、javascript 和 jquery

這可能對您有用。 我不太了解 HTML,所以如果我不理解表格的正確結構,請告訴我。

我正在使用具有以下值的示例數據框:

  Id Value   Name
0  1     2   Paul
1  2     5    Sam
2  3     7   Jill
3  4    10   Karl
4  5    15  Sally
5  6     4   Irma

為了實現您的目標,我們將使用 Python 的 join() 函數。 這是腳本:

import pandas as pd

ddict = {
    'Id': ['1', '2', '3', '4', '5', '6'],
    'Value': ['2','5', '7', '10', '15', '4'],
    'Name': ['Paul','Sam', 'Jill', 'Karl', 'Sally', 'Irma']
}

df = pd.DataFrame(ddict)

### Print the table tag
print('<table>')

### Print the headers to a <th> tag; Close each <th> for every line
print('\t<tr>\n\t\t<th>' + '\t\t<th>'.join([f'{i}</th>\n' for i in df.columns.values.tolist()]) + '\t</tr>')

### Iterate over dataframe values; Enclose each value in a <td> tag
for i, v in enumerate(df.values):
    print('\t<tr>\n\t\t<td>' + '\t\t<td>'.join([f'{x}</td>\n' for x in v]) + '\t</tr>')

### Print table tag closure.
print('</table>')

輸出:

<table>
    <tr>
        <th>Id</th>
        <th>Value</th>
        <th>Name</th>
    </tr>
    <tr>
        <td>1</td>
        <td>2</td>
        <td>Paul</td>
    </tr>
    <tr>
        <td>2</td>
        <td>5</td>
        <td>Sam</td>
    </tr>
    <tr>
        <td>3</td>
        <td>7</td>
        <td>Jill</td>
    </tr>
    <tr>
        <td>4</td>
        <td>10</td>
        <td>Karl</td>
    </tr>
    <tr>
        <td>5</td>
        <td>15</td>
        <td>Sally</td>
    </tr>
    <tr>
        <td>6</td>
        <td>4</td>
        <td>Irma</td>
    </tr>
</table>

測試和工作

參考下面的答案

使用 Flask、Jinja2 模板渲染一個可編輯的表格,然后處理返回的表格數據

您可以通過使用 FormField 從數據庫生成可編輯表格來執行此操作 您可以使用數據庫,也可以使用 CSV 下面的示例顯示了如何從 csv 生成可編輯表格

表單.py

class MemberForm(Form):
    name = StringField('name')
    member_id = StringField('member_id')
    inbox_share = IntegerField('inbox_share')
    # etc.

class TeamForm(Form):
    title = StringField('title')
    teammembers = FieldList(FormField(MemberForm))

視圖.py

@app.route('/support/team-members-update', methods=['GET','POST'])
def update_team_member():
    #below is to cover csv col to list
    columns = defaultdict(list)
    with open('file.csv') as cavfile:
         reader = csv.DictReader(csvfile)
         for row in render:
             for (k,v) in row.items():
                  columns[k].append(v)
    member_id= columns['name of your col 1'] #this will generate a list of your col
    inbox_share = columns['name of you col 2'] #this will generate list of you col

    for i,j in zip(list_col1, list_col2):
         member_form = MemberForm()
         member_form.member_id = i
         member_form.inbox_share = j
         teamform.teammembers.append_entry(member_form) 
    return render_template('ediit-team.html',teamform=teamform)

編輯團隊.html

<html>
<head>
    <title>Edit Team Members</title>
</head>
<body>
    <h1>Edit Team</h1>
    <div>
        <form action="" method="post" name="teamform">
            {{ teamform.hidden_tag() }}
            Team Title: {{ teamform.title }}<br>
            <div>
                <table>
                    <tr>
                        <th> Name </th>
                        <th> ID </th>
                        <th> Inbox Share </th>
                    </tr>
                    {% for member in teamform.teammembers %}
                    <tr>                            
                        <td>{{ member.member_id }}</td>
                        <td>{{ member.inbox_share }}</td>
                    </tr>
                    {% endfor %}
                </table>
            </div>
            <p><input type="submit" name="edit" value="Send"></p>
        </form>
    </div>
</body>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM