try to this complete. it may help u
def report(billing_sn):
import os
import shutil
import sys
import string
import urllib
import xlwt
from xlwt import Workbook,Worksheet,Utils,Row,Style,UnicodeUtils,Formatting,ExcelMagic,CompoundDoc,Column,Cell,BIFFRecords,Bitmap,antlr
from datetime import datetime
import MySQLdb
import xml.dom.minidom
from xml.dom.minidom import parse,parseString
import datetime
from StringIO import StringIO
import cStringIO
dbhost="localhost"
dbuser=" "
dbpasswd=" "
dbname=" "
#print sno
#def print_report(billing_sn):
conn1 = MySQLdb.connect(host = dbhost, user = dbuser, passwd = dbpasswd, db = dbname)
cursor = conn1.cursor()
#billing_sn=int(billing_sn)
#sql = """select * from measurement_sheet ;"""
#sql = """select * from measurement_sheet where sno =""" billing_sn """ ;"""
billing_sno = {'billing_sn': billing_sn}
cursor.execute("select * from measurement_sheet where sno = %(billing_sn)s",billing_sno)
results = cursor.fetchall()
for row in results:
lsno=row[0]
tktnow=row[7]
dnno=row[4]
cfno=row[3]
spoint=row[1]
address=row[0]
officrName=row[44]
#cursor1=cursor.fetchone()
#cursor1=cursor.fetch_row()
#result=cursor1
#return result
#print sno
Fillno='' #value variable
#tktnow=72620
#lsno=row
franchname='Telematics Inc.'
#dnno=
7314048300 #cfno=0
ak='AK'
#spoint='Spare Point'
#address='302 shriji towar,383-84 Khatiwala IND'
othval='SHIFTING'
hwtchnician='H W Technician'
#officrName=''
dt=datetime.datetime.now()
style0 = xlwt.easyxf('font:name times New Roman, color-index blue, bold on',num_format_str='#,##0.00')
style2 = xlwt.easyxf('font:name times New Roman, color-index black, bold on',num_format_str='#,##0.00')
style1 = xlwt.easyxf(num_format_str='D-MM-YY')
wb = xlwt.Workbook()
ws = wb.add_sheet('A test sheet')
for h in range(0, 1): # Starting First(1) Row ws.write_merge(h+0, h+0, 0, 16, 'Measurement Sheet for SA Work %d' % h, style0)
ws.write(1,0, 'Laying Sheet no.', style0)
for i in range(0, 1):
ws.write_merge(i+1, i+1, 1, 3, lsno)
for j in range(0, 1): ws.write_merge(j+1, j+1, 4, 7, 'Date of Filling up Laying sheet %d' % j, style0)
for k in range(0, 1): ws.write_merge(j+1, j+1, 8, 10,dt,style1)
ws.write(1,11, 'Filled By', style0)
for n in range(0, 1): ws.write_merge(n+1, n+1, 12, 13,Fillno)
ws.write(1,14, 'Tecket', style0)
for n in range(0, 1): ws.write_merge(n+1, n+1, 15, 16,tktnow) # End First Row
ws.write(2, 0, 'Franchisee', style0) # Starting Second(2) Row
for i in range(0, 1):
ws.write_merge(i+2, i+2, 1, 3, franchname)
for i in range(0, 1):
ws.write_merge(i+2, i+2, 4, 5, 'Node',style1)
for i in range(0, 1):
ws.write_merge(i+2, i+2, 6, 10, 'Zone3',style1)
ws.write(2, 11, 'Dn No', style0)
for i in range(0, 1):
ws.write_merge(i+2, i+2, 12, 13, dnno)
ws.write(2, 14, 'Caf.', style0)
for n in range(0, 1): ws.write_merge(n+2, n+2, 15, 16,cfno) # End Second Row
ws.write(3, 0, 'RSU', style0) # Starting Third(3) Row
for i in range(0, 1):
ws.write_merge(i+3, i+3, 1, 3, ak)
for i in range(0, 1):
ws.write_merge(i+3, i+5, 4, 5, 'Type of Connection(Plstick)', style0)
ws.write(3, 6, 'New', style0)
ws.write(3, 7, 'Shifting', style0)
ws.write(3, 8, 'Reconnection', style0)
for i in range(0, 1):
ws.write_merge(i+3, i+3, 9, 10, 'Others', style0)
ws.write(3, 11, 'New DP', style0)
ws.write(3, 12, 'Existing Dp', style0)
for i in range(0, 1):
ws.write_merge(i+3, i+3, 13, 15, 'Additional Case from New DP', style0)
ws.write(3, 16, 'Remarks', style0) # End Third Row
ws.write(4, 0, 'Customer Name', style0) # Starting Fourth(4) Row
for i in range(0, 1):
ws.write_merge(i+4, i+4, 1, 3, spoint)
for i in range(0, 1):
ws.write_merge(i+4, i+5, 9, 10, othval) # End Fourth Row
ws.write(5, 0, 'Installation Address', style0) # Starting Fifth(5) Row
for i in range(0, 1):
ws.write_merge(i+5, i+5, 1, 3, address) # End Fifth Row
ws.write(6, 0, 'Nearest N/W element(tick)', style0) # Starting Sixth(6) Row
ws.write(6, 1, 'MDF', style2)
ws.write(6, 2, 'Pillar', style2)
ws.write(6, 3, 'SP', style2)
ws.write(6, 4, 'DP', style2)
ws.write(6, 5, 'Pole', style2)
for i in range(0, 1):
ws.write_merge(i+6, i+7, 6, 6, hwtchnician)
for i in range(0, 1):
ws.write_merge(i+6, i+7, 7, 9, ' ', style2)
for i in range(0, 1):
ws.write_merge(i+6, i+7, 10, 12, 'Insl. Officer Name ', style2)
for i in range(0, 1):
ws.write_merge(i+6, i+7, 13, 16, officrName) # End Sixth Row
ws.write(7, 0, 'N/W Element NO.', style0) # Starting Sexenth(7) Row
for i in range(0, 1):
ws.write_merge(i+7, i+7, 1, 5, '') # End Sexenth(7) Row
ws.write(8, 0, 'Subscriber Refusal/Row Issue', style0) # Starting Eighth(8) Row
for i in range(0, 1):
ws.write_merge(i+8, i+8, 1, 6, '')
for i in range(0, 1):
ws.write_merge(i+8, i+8, 7, 8, 'Category',style0)
ws.write(8, 9, 'Key', style0)
for i in range(0, 1):
ws.write_merge(i+8, i+8, 10, 11, 'PCO/CCB',style0)
for i in range(0, 1):
ws.write_merge(i+8, i+8, 12, 13, 'SME',style0)
for i in range(0, 1):
ws.write_merge(i+8, i+8, 14, 16, 'Residential',style0) # End Eighth(8) Row
ws.write(9, 0, 'Deviations if any', style0) # Starting Nine(9) Row
ws.write(9, 1, '1', style2)
for i in range(0, 1):
ws.write_merge(i+9, i+9, 2, 5, '')
ws.write(9,6,'3',style2)
for i in range(0, 1):
ws.write_merge(i+9, i+9, 7, 10, '')
ws.write(9,11,'5',style2)
for i in range(0, 1):
ws.write_merge(i+9, i+9, 12, 16, '') # End Nine(9) Row
for i in range(0, 1): # Starting Tenth(10) Row
ws.write_merge(i+10, i+19, 0, 0, 'Digging Details',style0)
ws.write_merge(i+10,i+10,1,3,'Distance(Mtrs)',style0)
ws.write_merge(i+10,i+10,4,5,'Soil Strate',style0)
ws.write_merge(i+10,i+10,6,7,'Actual Lenght',style0)
ws.write_merge(i+10,i+10,8,9,'GI Pipe(Mtrs)',style0)
ws.write_merge(i+10,i+10,10,11,'Hope',style0)
ws.write(10,12,'PCC',style0)
for i in range(0,1):
ws.write_merge(i+10,i+10,13,16,'Digging details(soil/pcc/duct)',style0) # End Tenth(10) Row
ws.write(11,1,'From',style0) # Starting Eleventh(11) Row
ws.write(11,2,'To',style0)
ws.write(11,3,'Sub-Total',style0)
ws.write(11,4,'Normal',style0)
ws.write(11,5,'Soft',style0)
ws.write(11,6,'Normal',style0)
ws.write(11,7,'Soft',style0)
ws.write(11,8,'25mm',style2)
ws.write(11,9,'40mm',style2)
ws.write(11,10,'25mm',style2)
ws.write(11,11,'40mm',style2)
ws.write(11,12,' ',style2)
for i in range(0,1):
ws.write_merge(i+11,i+19,13,16,' ',style2) # Starting Eleventh(11) Row
ws.write(12,1,' ',style0) # Starting (12) Row
ws.write(12,2,' ',style0)
ws.write(12,3,' ',style0)
ws.write(12,4,' ',style0)
ws.write(12,5,' ',style0)
ws.write(12,6,'0',style2)
ws.write(12,7,'0',style2)
ws.write(12,8,' ',style2)
ws.write(12,9,'',style2)
ws.write(12,10,'',style2)
ws.write(12,11,'',style2)
ws.write(12,12,' ',style2) # End (12) Row
ws.write(13,1,' ',style0) # Starting (13) Row
ws.write(13,2,' ',style0)
ws.write(13,3,' ',style0)
ws.write(13,4,' ',style0)
ws.write(13,5,' ',style0)
ws.write(13,6,' ',style2)
ws.write(13,7,' ',style2)
ws.write(13,8,' ',style2)
ws.write(13,9,'',style2)
ws.write(13,10,'',style2)
ws.write(13,11,'',style2)
ws.write(13,12,' ',style2) # End (13) Row
ws.write(14,1,' ',style0) # Starting (14) Row
ws.write(14,2,' ',style0)
ws.write(14,3,' ',style0)
ws.write(14,4,' ',style0)
ws.write(14,5,' ',style0)
ws.write(14,6,' ',style2)
ws.write(14,7,' ',style2)
ws.write(14,8,' ',style2)
ws.write(14,9,'',style2)
ws.write(14,10,'',style2)
ws.write(14,11,'',style2)
ws.write(14,12,' ',style2) # End (14) Row
for i in range(0, 1): # Starting (20) Row
ws.write_merge(i+20, i+20, 0, 2, 'Cable Details',style0)
ws.write(20,3,'Length(Mtrs)',style0)
for i in range(0, 1):
ws.write_merge(i+20, i+20, 4, 6, ' ',style2)
for i in range(0, 1):
ws.write_merge(i+20, i+20, 7, 8, ' ',style2)
for i in range(0, 1):
ws.write_merge(i+20, i+24, 9, 9, ' ',style2)
for i in range(0, 1):
ws.write_merge(i+20, i+24, 10, 13, ' ',style2)
for i in range(0, 1):
ws.write_merge(i+20, i+24, 14, 16, '0',style2) # End (20) Row
for i in range(0, 1): # Starting (21) Row
ws.write_merge(i+21, i+21, 0, 2, 'Laying U/G',style0)
ws.write(21,3,' ',style2)
for i in range(0, 1):
ws.write_merge(i+21, i+21, 4, 6, ' ',style2)
ws.write_merge(i+21, i+21, 7, 8, ' ',style2) # Starting (21) Row
for i in range(0, 1): # Starting (22) Row
ws.write_merge(i+22, i+22, 0, 2, 'Pulling inside pipe',style0)
ws.write(22,3,' ',style2)
for i in range(0, 1):
ws.write_merge(i+22, i+22, 4, 6, ' ',style2)
ws.write_merge(i+22, i+22, 7, 8, ' ',style2) # Starting (22) Row
for i in range(0, 1): # Starting (23) Row
ws.write_merge(i+23, i+23, 0, 2, 'Pairage',style0)
ws.write(23,3,' ',style2)
for i in range(0, 1):
ws.write_merge(i+23, i+23, 4, 6, ' ',style2)
ws.write_merge(i+23, i+23, 7, 8, ' ',style2) # Starting (23) Row
ws.write(24,0,' ',style0) # Starting (24) Row
ws.write(24,1,' ',style0)
ws.write(24,2,' ',style0)
ws.write(24,3,' ',style0)
for i in range(0, 1):
ws.write_merge(i+24, i+24, 4, 8, ' ',style2) # Starting (24) Row
ws.write(25,0,'Jointing done if any',style0) # Starting (25) Row
for i in range(0, 1):
ws.write_merge(i+25, i+25, 1, 2, 'TSE 1(Nos) ',style0)
ws.write_merge(i+25, i+25, 3,4,'TSE(Nos)',style0)
ws.write_merge(i+25, i+25, 5,6,'Sleeves',style0)
ws.write_merge(i+25, i+26, 7,8,'Pairs termination(Nose)',style0)
ws.write(25,9,'DP',style0)
ws.write(25,10,'SP',style0)
ws.write(25,11,'Pillar',style0)
ws.write(25,12,'MDF',style0)
for i in range(0, 1):
ws.write_merge(i+25, i+26, 13, 16, 'Remarks',style0) # END (25) Row
ws.write(26,0,'Qty.',style0) # Starting (26) Row
for i in range(0, 1):
ws.write_merge(i+26, i+26, 1, 2, ' ',style2)
ws.write_merge(i+26, i+26, 3,4,' ',style2)
ws.write_merge(i+26, i+26, 5,6,' ',style2)
#ws.write_merge(i+25, i+26, 7,8,'Pairs termination(Nose)',style0)
ws.write(26,9,' ',style2)
ws.write(26,10,' ',style2)
ws.write(26,11,' ',style2)
ws.write(26,12,' ',style2) # END (26) Row
for i in range(0, 1): # Starting (27) Row
ws.write_merge(i+27, i+30, 0, 0, 'DP Installation',style0)
ws.write(27,1,'Capacity',style0)
ws.write(27,2,'Quantity',style0)
for i in range(0, 1):
ws.write_merge(i+27, i+28, 3, 5, 'GL Pipe A Class',style0)
ws.write_merge(i+27, i+28, 6, 8, 'HDPE',style0)
ws.write_merge(i+27, i+28, 9, 10, 'DP',style0)
ws.write_merge(i+27, i+27, 11, 12, '1. With Module',style0) # End (27) Row
for i in range(0, 1): # Begin (28) Row
ws.write_merge(i+28, i+30, 1, 1, ' ',style0)
ws.write_merge(i+28, i+30, 2, 2, ' ',style0)
ws.write_merge(i+28, i+28, 11, 12, '2. Without Module',style0) # End (28) Row
ws.write(29,3,'Size',style0) # Begin (29) Row
ws.write(29,4,'Length',style0)
ws.write(29,5,'Clamps',style0)
ws.write(29,6,'Size',style0)
ws.write(29,7,'Length',style0)
ws.write(29,8,'Clamps',style0)
ws.write(29,9,'Number',style0)
for i in range(0, 1):
ws.write_merge(i+29, i+29, 10, 12, ' ',style0) # End (29) Row
ws.write(30,3,' 25mm',style2) # Beging (30 Row
ws.write(30,4,' ',style0)
ws.write(30,5,' ',style0)
ws.write(30,6,' ',style2)
ws.write(30,7,' ',style0)
ws.write(30,8,' ',style0)
ws.write(30,9,'Number painting',style2)
for i in range(0, 1):
ws.write_merge(i+30, i+30, 10, 12, ' ',style0) # End (30) Row
ws.write(31,3,'40mm',style2) # Beging (31) Row
ws.write(31,4,' ',style2)
ws.write(31,5,' ',style2)
ws.write(31,6,' ',style2)
ws.write(31,7,' ',style2)
ws.write(31,8,' ',style2)
#ws.write(31,9,'',style2)
for i in range(0, 1):
ws.write_merge(i+31, i+31, 9, 11, 'DP Existing New ',style0) # End (31) Row
ws.write(32,0,' House Fitting',style0)
for i in range(0, 1): # Starting (32) Row
ws.write_merge(i+32, i+32, 1, 2, 'Instrument',style0)
ws.write_merge(i+32, i+33, 3, 4, 'PVT Pipe',style0)
ws.write_merge(i+32, i+33, 5, 6, 'Drop Wire',style0)
ws.write_merge(i+32, i+32, 7, 11, 'PVC Wire',style0)
ws.write_merge(i+32, i+32, 12, 16, 'Modem Details(Type/Ser. No.)',style0) # Starting (32) Row
ws.write(33,0,' ',style0) # Starting (33) Row
ws.write(33,1,' ',style0)
ws.write(33,2,' ',style0)
for i in range(0, 1):
ws.write_merge(i+33,i+34,7,7,'Pair Capacity',style0)
ws.write_merge(i+33, i+33, 8, 11, 'Length (Mtrs)',style0)
ws.write_merge(i+33, i+40, 12, 16, ' ',style0) # Starting (33) Row
for i in range(0, 1):
ws.write_merge(i+34,i+42,0,0,'0',style0) # Starting (34) Row
ws.write(34,1,'Emerald T/P',style2)
ws.write(34,2,' ',style2)
ws.write(34,3,'Size',style0)
ws.write(34,4,'Length',style2)
for i in range(0, 1):
ws.write_merge(i+34,i+40,5,6,'0',style2)
ws.write(34,8,'New pipe/CC',style2)
ws.write(34,9,'',style2)
ws.write(34,10,'',style2)
ws.write(34,11,' ',style2) # Starting (34) Row
# Starting (35) Row
ws.write(35,1,'Gamet',style2)
ws.write(35,2,' ',style2)
ws.write(35,3,'20 mm',style2)
ws.write(35,4,' ',style2)
ws.write(35,7,'1 Pair',style2)
ws.write(35,8,' ',style2)
ws.write(35,9,'',style2)
ws.write(35,10,' ',style2)
ws.write(35,11,' ',style2) # Starting (35) Row
# Starting (36) Row
ws.write(36,1,'others',style2)
ws.write(36,2,' ',style2)
ws.write(36,3,'25 mm',style2)
ws.write(36,4,' ',style2)
ws.write(36,7,'2 Pair',style2)
ws.write(36,8,' ',style2)
ws.write(36,9,'',style2)
ws.write(36,10,' ',style2)
ws.write(36,11,' ',style2) # Starting (36) Row
# Starting (37) Row
ws.write(37,1,'M71',style2)
ws.write(37,2,'0',style2)
ws.write(37,3,'32 mm',style2)
ws.write(37,4,' ',style2)
ws.write(37,7,'4 Pair',style2)
ws.write(37,8,' ',style2)
ws.write(37,9,'',style2)
ws.write(37,10,' ',style2)
ws.write(37,11,' ',style2) # Starting (37) Row
# Starting (38) Row
ws.write(38,1,'Sprit410',style2)
ws.write(38,2,'0',style2)
ws.write(38,3,' ',style2)
ws.write(38,4,' ',style2)
ws.write(38,7,'5 Pair',style2)
ws.write(38,8,' ',style2)
ws.write(38,9,'',style2)
ws.write(38,10,' ',style2)
ws.write(38,11,' ',style2) # Starting (38) Row
ws.write(39,1,' ',style2) # Starting (39) Row
ws.write(39,2,' ',style2)
ws.write(39,3,' ',style2)
ws.write(39,4,' ',style2)
ws.write(39,7,'10 Pair',style2)
ws.write(39,8,' ',style2)
ws.write(39,9,'',style2)
ws.write(39,10,' ',style2)
ws.write(39,11,' ',style2) # Starting (38) Row
for i in range(0, 1): # Starting (40) Row
ws.write_merge(i+40,i+40,1,2,'Own Instrument',style0)
ws.write(40,3,' ',style2)
ws.write(40,4,' ',style2)
ws.write(40,7,'20 Pair',style2)
ws.write(40,8,' ',style2)
ws.write(40,9,'',style2)
ws.write(40,10,' ',style2)
ws.write(40,11,' ',style2) # Starting (40) Row
ws.write(41,1,'Rosett Single ',style2) # Starting (41) Row
ws.write(41,2,'Rosett Two Way ',style2)
ws.write(41,3,'3/4 Way JB(Nos) ',style2)
ws.write(41,4,'Saddies(Nos)',style2)
ws.write(41,5,'3way router',style2)
ws.write(41,6,'J-nail',style2)
ws.write(41,7,'Bends(Nos.)',style2)
for i in range(0, 1):
ws.write_merge(i+41,i+41,8,9,'Corrugated Pipe(Mtrs)',style0)
ws.write(41,10,'RJ-11(nos) ',style2)
ws.write(41,11,'Ravel Plug ',style2)
for i in range(0, 1):
ws.write_merge(i+41,i+41,12,13,'Single DW Router',style0)
ws.write_merge(i+41,i+41,14,15,'DW Router',style0)
ws.write(41,16,'Splitter',style2) # Starting (41) Row
ws.write(42,1,'0',style2) # Starting (42) Row
ws.write(42,2,'',style2)
ws.write(42,3,'',style2)
ws.write(42,4,' ',style2)
ws.write(42,5,'0',style2)
ws.write(42,6,'0',style2)
ws.write(42,7,'',style2)
ws.write(42,8,'',style2)
ws.write(42,9,'',style2)
ws.write(42,10,'0',style2)
ws.write(42,11,'',style2)
for i in range(0, 1):
ws.write_merge(i+42,i+42,12,13,' ',style0)
ws.write_merge(i+42,i+42,14,15,' ',style0)
ws.write(42,16,'0',style2) # Starting (42) Row
for i in range(0, 1):
ws.write_merge(i+46,i+48,0,5,'The Work carried out by the contracter is as per specification and to my satisfation ',style0)
ws.write_merge(i+49,i+51,0,3,'Hasan Ali : PU0000777',style0)
ws.write_merge(i+49,i+51,8,10,'Contractors Signature',style0)
ws.write_merge(i+49,i+51,14,16,'Installation officer signature',style0)
#f1=open('/home/atharva/Desktop/test_report.xls','w')
f1=open('/home/atharva/Desktop/test_report.xls','w')
wb.save(f1)
pth='/home/atharva/Desktop/test_report.xls'
#shutil.copyfile('/home/atharva/Desktop/test_report.xls','/home/atharva/test_report2.xls')
#print_report(billing_sn)
#os.path.dirname(os.path.abspath(billing_sn))
print'Repor Genereted'
cursor.close()
conn1.close()
sys.exit()
report(8)