我正在编写一个程序,它将使用cgi从HTML页面获取信息,然后将值传递给for循环,循环将在Excel工作表中搜索条目并打印与搜索条件匹配的列。
我的程序如下所示,但是每次for循环后都没有打印搜索结果,当使用CGI收到值时,所以“print(domain)”没有被执行。
#!c:\Python27\python.exe
import openpyxl
import cgi, cgitb
print "Content-type:text/html\r\n\r\n"
print "<html>"
print "</body>"
formData=cgi.FieldStorage()
Mode=formData.getvalue('uniqvalue')
Mode_it={Mode}
wb=openpyxl.load_workbook('excelsheet.xlsx')
sheet= wb.get_sheet_by_name('Sheet1')
for rowNum in range (2, sheet.max_row):
invName=sheet.cell(row=rowNum,column=2).value
if invName in Mode_it:
domain=sheet.cell(row=rowNum, column=3).value
print(domain)
print "<h4> You searched for %s</h4>" % Mode
print "</body>"
print "</html>"
有趣的是,如果我进行以下更改并更改变量Mode并给出一个固定值,它就能完美运行。
基本上,如果我为变量Mode赋予值为7961,则它起作用:
formData=cgi.FieldStorage()
Mode=formData.getvalue('uniqvalue')
Mode_it={7961}
我知道循环有效,最后一个print语句打印我在HTML中输入的值的输出,所以我知道它也有效。
我不确定为什么它不是变量。任何线索都将受到高度赞赏。
我使用的示例HTML具有以下语法:
<form action="Searchandreturn.py" method="post">
Enter the Value: <input type="text" name="uniqvalue"><br />
<input type="submit" value="Submit" />
</form>