【问题标题】:Convert CSV to a HTML table format and store in a HTML file将 CSV 转换为 HTML 表格格式并存储在 HTML 文件中
【发布时间】:2016-08-19 18:07:44
【问题描述】:

我尝试了几个 shell 脚本来转换为 HTML 表格格式,但我没有得到想要的输出。任何人都可以在这里帮助使用 Python 或 PowerShell 将 CSV 转换为 HTML 表格格式并将其存储到 HTML 文件中。

【问题讨论】:

  • 我用过的东西是这样的: echo "" ;读取 INPUT 时;做回声“”;完成”
    ${INPUT//,/ }

标签: python html csv powershell


【解决方案1】:

嗯,我认为最简单的方法是。

import pandas as pd

csv = pd.read_csv('csv_file.csv')
html_table = csv.to_html()

f = open('html_file.html', 'w')
f.write(html_table)
f.close()

试试看!

【讨论】:

    【解决方案2】:

    这可能会对您有所帮助:

     import sys
     import csv
     if len(sys.argv) < 3:
        print "Usage: csvToTable.py csv_file html_file"
        exit(1)
    
     # Open the CSV file for reading
    
        reader = csv.reader(open(sys.argv[1]))
    
     # Create the HTML file for output
    
        htmlfile = open(sys.argv[2],"w")
    
     # initialize rownum variable
        rownum = 0
    
     # write <table> tag
    
       htmlfile.write('<table>')
    
     # generate table contents
    
    for row in reader: # Read a single row from the CSV file
    
     # write header row. assumes first row in csv contains header
       if rownum == 0:
          htmlfile.write('<tr>') # write <tr> tag
          for column in row:
              htmlfile.write('<th>' + column + '</th>')
          htmlfile.write('</tr>')
    
      #write all other rows 
       else:
          htmlfile.write('<tr>')    
          for column in row:
              htmlfile.write('<td>' + column + '</td>')
          htmlfile.write('</tr>')
    
       #increment row count 
       rownum += 1
    
     # write </table> tag
       htmlfile.write('</table>')
    
     # print results to shell
       print "Created " + str(rownum) + " row table."
       exit(0)
    

    【讨论】:

      【解决方案3】:

      使用 PowerShell 很容易。您可以使用ConvertFrom-Csv cmdlet 将您的csv 转换为对象数组,并使用ConvertTo-Html cmdlet 将其转换为html 表。要存储 html,请使用 Set-Content cmdlet:

      $myCsv = 
      @'
      Id, Name
      1, Hello
      2, World
      '@
      
      $myCsv | ConvertFrom-Csv | ConvertTo-Html | Set-Content -Path 'YOUR_PATH_HERE.csv'
      

      输出:

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
      <title>HTML TABLE</title>
      </head><body>
      <table>
      <colgroup><col/><col/></colgroup>
      <tr><th>Id</th><th>Name</th></tr>
      <tr><td>1</td><td>Hello</td></tr>
      <tr><td>2</td><td>World</td></tr>
      </table>
      </body></html>
      

      注意:如果您需要从文件加载 csv,您可以使用Get-Content cmdlet 加载并使用上面的示例进行转换,也可以使用Import-Csv cmdlet。

      【讨论】:

      • 在此处提问之前,我已经尝试过上述命令。输出表格式不正确。
      猜你喜欢
      • 1970-01-01
      • 2011-02-07
      • 1970-01-01
      • 1970-01-01
      • 2017-11-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多