python製作表格
1. 請問python如何使用tk繪制圖片這種表格,並且可以在空白處添加數據後保存文件
這明顯不是 tk 乾的活啊。 這應該是一張web 表格,或者 WORD 模板 才合適。
2. python處理EXCEL數據
能提供一個樣例文件或截個圖看下具體是怎樣的格式
3. python的easygui怎麼製作一個表格
你好,下面是一個簡單表格的例子
import easygui as g
m1 = g.multenterbox(msg='[*真實姓名]為必填項\n[*手機號碼]為必填項\n[*E-mail]為必填項\n',\
fields=('*用戶名','*真實姓名','固定電話','*手機號碼','*QQ','E-mail'))
print(m1)
4. 如何用python創建excel表格
可以安裝xlsxwriter庫
看簡例:
importxlsxwriter
#創建新表格
workbook=xlsxwriter.Workbook('test.xlsx')
worksheet=workbook.add_worksheet()
#表格的內容
expenses=(
['Rent',1000],
['Gas',100],
['Food',300],
['Gym',50],
)
#想像表格的布局,坐標0,0對應A,1
row=0
col=0
#填充每個單元格
foritem,costin(expenses):
worksheet.write(row,col,item)
worksheet.write(row,col+1,cost)
row+=1
workbook.close()
5. 用Python tkinter 做一個圖形界面表格需要帶框架線
tkinter中可以用Treeview 顯示數據,相當於table
6. 關於如何用python 編輯 excel表格
#不理解你的意思,如果要是讀出來每行都是你給的格式,輸出格式是你寫的話,很好弄。
line=file.readlines()
f=open('result.txt','w')
foriinrange(len(line)):
eachline=line[i].split(' ')
arry1=[]
iflen(eachline)==2:
print>>f,eachline[0],'',eachline[1],arry1.append(line[i+1:i+4]),
'<',line[i+4],',',line[i+5],',',line[i+6],'>'
f.close()
7. 求助,使用python畫出以下表格
defget_size():
n=int(input("Enteranumberbetween3and8:"))
while(n<3)or(n>8):
n=int(input(" Invalidentry-tryagain:"))
returnn
defget_char():
c=input("Enteracharacter:")
whilelen(c)!=1:
c=input(" Invalidentry-tryagain:")
returnc
defprint_box():
number=get_size()
c=get_char()
forindexinrange(number-1):
print(c,end="")
print(c)
forrowinrange(2,number):
print(c,end="")
forindexinrange(number-2):
print("",end="")
print(c)
forindexinrange(number):
print(c,end="")
returnNone
8. 用python語言編寫一個m行n列得表格怎麼寫
defdrawTable(iRow,iColumn,iCellW=5,iCellH=3):
deffunc(x,y):
if(x%iCellW==0)and(y%iCellH==0):
print'+',
elifx%iCellW==0:
print'|',
elify%iCellH==0:
print'-',
else:
print'',
foryinrange(iColumn*iCellH+1):
forxinrange(iRow*iCellW):
func(x,y)
print'+'
drawTable(5,3)
上例為畫一個五行三列表格的代碼示例,在python 2.7版本上測試通過。
行列數目以及單元格寬度都可通過函數參數控制。
9. python怎樣做html的表格
現要實現python製作html格式的表格,利用Python對字元串str.format()格式化操作進行處理,在日常對CVS格式文件處理過程當中,經常會將CVS格式文件進行轉換,在正式場合是程序讀取CVS文件進行轉換並輸出到html格式的文件當中,但現在只是實現一下轉換的過程,需要輸入以逗號分隔的數據。
在設計程式的時候,需要先定義一下整個代碼的框架,首先我們要定義一個主函數main(),雖然Python沒有規定入口函數,一般在正式的開發中都設計了一個main()函數作為程序的入口函數,或許這是一種規范吧。然後我們在定義一個列印表頭的方法print_head(),並在主函數里進行調用。再定義一個列印表尾的方法print_end(),也在主函數中進行調用。定義print_line()為列印表格行,定義extract_field()處理cvs行數據轉換為list集合數據。最後再定義一個處理特殊符號的方法escape_html(),因為在html代碼中為了避免與它的標簽沖突,特要進行特殊符號的轉換,如&-->&
還有就是對長度過長的數據要進行處理並用...代替
源代碼:
#Author Tandaly
#Date 2013-04-09
#File Csv2html.py
#主函數
def main():
print_head()
maxWidth = 100
count = 0
while True:
try:
line = str(input())
if count == 0:
color = "lightgreen"
elif count%2 == 0:
color = "white"
else:
color = "lightyellow"
print_line(line, color, maxWidth)
count += 1
except EOFError:
break
print_end()
#列印表格頭
def print_head():
print("")
#列印錶行
def print_line(line, color, maxWidth):
tr = "".format(color)
tds = ""
if line is not None and len(line) > 0:
fields = axtract_fields(line)
for filed in fields:
td = "{0}".format(filed if (len(str(filed)) <= maxWidth) else
(str(filed)[:100] + "..."))
tds += td
tr += "{0}
".format(tds)
print(tr)
#列印表格尾
def print_end():
print("")
#抽取行值
def axtract_fields(line):
line = escape_html(line)
fields = []
field = ""
quote = None
for c in line:
if c in "\"":
if quote is None:
quote = c
elif quote == c:
quote = None
continue
if quote is not None:
field += c
continue
if c in ",":
fields.append(field)
field = ""
else:
field += c
if len(field) > 0:
fields.append(field)
return fields
#處理特殊符號
def escape_html(text):
text = text.replace("&", "&")
text = text.replace(">", ">")
text = text.replace("<", "<")
return text
#程序入口
if __name__ == "__main__":
main()
運行結果:
>>>
"nihao","wo"
nihaowo
"sss","tandaly"
...tandaly
"lkkkkkkkkkkksdfssssssssssssss",
34
...34
10. python 怎麼生出成一個表格,並發送郵件
# -*- coding: utf-8 -*-
#程序名稱:自動化缺陷報告腳本
#程序描述:實現從本地路徑讀取excel文件內容,並繪制HTML表格,將內容寫入郵件正文區發送
#編寫時間:2014.11.29-2014.12.4
#作者:劉琳澤
#解釋環境:Windows 7家庭高級版 Python 2.7.8IDLE
#引入excel文檔相關庫
import xlrd
import os,time
#引入郵件相關庫
import smtplib
from email.mime.text import MIMEText
from email.header import Header
import base64
#處理從excel中讀取的float類型數據的類
#目前集成兩種處理:(1)float到int型的轉換(2)float到str型的轉換,後續有需要可以增加方法以集成其他類型的轉換
class judgeFloat:
def floatToInt(self,variable):
variable="%d"%variable
return variable
def floatToStr(self,variable):
variable=xlrd.xldate_as_tuple(variable,0)
variable=list(variable)
if variable[1]<10:
variable[1]='0'+str(variable[1])
variable=str(variable[0])+str(variable[1])+str(variable[2])
return variable
#確定文檔是否修改的函數:獲取文檔的修改時間與本地時間對比,不一致要求用戶確認是否繼續執行,一致則直接執行
def openFile(filename,address):
filetime=time.strftime("%Y/%m/%d",time.localtime(os.stat(address+filename).st_mtime))
local=time.strftime("%Y/%m/%d",time.localtime())
if filetime!=local:
single=input("文檔今天還沒有修改過,請確認是否繼續?確認請輸入1後點擊回車,否則輸入2點擊回車。")
if single==1:
pass
elif single==2:
exit()
else:
print '您的輸入有誤!腳本即將結束。'
time.sleep(5)
exit()
else:
pass
#寫郵件的函數
def mailWrite(filename,address):
header='<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head>'
th='<body text="#000000">committed缺陷詳情:<table border="1" cellspacing="0" cellpadding="3" bordercolor="#000000" width="1800" align="left" ><tr bgcolor="#F79646" align="left" ><th>標識</th><th>摘要</th><th>狀態</th><th>優先順序</th><th>嚴重性</th><th>標記</th><th>所有者</th><th>創建時間</th><th>修改時間</th></tr>'
#打開文件
filepath=address+filename
book=xlrd.open_workbook(filepath)
sheet=book.sheet_by_index(0)
#獲取行列的數目,並以此為范圍遍歷獲取單元數據
nrows = sheet.nrows-1
ncols = sheet.ncols
body=''
cellData=1
for i in range(1,nrows+1):
td=''
for j in range(ncols):
#讀取單元格數據,賦給cellData變數供寫入HTML表格中
cellData=sheet.cell_value(i,j)
#調用浮點型轉換方法解決讀取的日期內容為浮點型數據的問題
if isinstance(cellData,float):
if j==0 and i>0:
cellDataNew=judgeFloat()
cellData=cellDataNew.floatToInt(cellData)
else:
cellDataNew=judgeFloat()
cellData=cellDataNew.floatToStr(cellData)
else:
pass
tip='<td>'+cellData+'</td>'
#並入tr標簽
td=td+tip
tr='<tr>'+td+'</tr>'
#為解決字元串拼接問題增設語句,tr從excel中讀取出來是unicode編碼,轉換成UTF-8編碼即可拼接
tr=tr.encode('utf-8')
#並入body標簽
body=body+tr
tail='</table></body></html>'
#將內容拼接成完整的HTML文檔
mail=header+th+body+tail
return mail
#發送郵件
def mailSend(mail):
#設置發件人
sender = '***'
#設置接收人
receiver = '***@***.com'
#設置郵件主題
subject = '測試郵件,請忽略!'
#設置發件伺服器,即smtp伺服器
smtpserver = 'smtp.***.net'
#設置登陸名稱
username = '***@***.net'
#設置登陸密碼
password = '******'
#實例化寫郵件到正文區,郵件正文區需要以HTML文檔形式寫入
msg = MIMEText(mail,'html','utf-8')
#輸入主題
msg['Subject'] = subject
#調用郵件發送方法,需配合導入郵件相關模塊
smtp = smtplib.SMTP()
#設置連接發件伺服器
smtp.connect('smtp.***.net')
#輸入用戶名,密碼,登陸伺服器
smtp.login(username, password)
#發送郵件
smtp.sendmail(sender, receiver, msg.as_string())
#退出登陸並關閉與發件伺服器的連接
smtp.quit()
#入口函數,配置文件地址和文件名
def main():
filename='Sheet1.xlsx'
address='d:/defectManage/'
openFile(filename,address)
mail=mailWrite(filename,address)
mailSend(mail)
#調用執行main函數
if __name__=="__main__":
main()