我想将多个变量写入xlsx coloumns,因为这些变量是索引的?

时间:2018-01-15 15:54:49

标签: python python-3.x openpyxl

BO_ 2147483744 Car_Signals_0x60: 21 Vector__XXX
 SG_ Zero_Byte : 0|8@1+ (1,0) [0|0] "NA" Vector__XXX
 SG_ Sensor_Protocol_Version : 8|8@1+ (1,0) [3|3] "counter" Vector__XXX
 SG_ reserved1 : 16|1@1+ (1,0) [0|0] "NA" Vector__XXX
 SG_ VehicleSpeed : 17|14@1+ (0.01,0) [0|100] "m/s" Vector__XXX
 SG_ VehicleSpeedValid : 31|1@1+ (1,0) [0|1] "bool" Vector__XXX
 VAL_ 2147483744 VehicleSpeedValid 1 "valid" 0 "invalid" ;
 VAL_ 2147483744 VehicleYawValid 1 "valid" 0 "invalid" ;
 VAL_ 2147483744 Wiper 1 "On" 0 "Off" ;

以上是输入文件'car.dbc'。

import csv
import re
import xlsxwriter
from openpyxl import Workbook
with open('car.dbc','r') as rf:
     #with open('newsmt.xls','w') as wf: 
         for Nrows,row in enumerate(rf):
             tokens=row.split(' ')            
        #Nrows += 1
             if '' in tokens:
                 if 'SG_' in tokens:
                     newVar = tokens
                     Signal = newVar[2]
                     #print (newVar)
                     n = Signal      #---> syn-1
                     wb = Workbook()
                     ws = wb.active
                     for row,i in enumerate(n):
                          column_cell = 'B'
                          ws[column_cell+str(row+2)] = str(i)
                      wb.save("row_creation_loop.xlsx")
             if 'VAL_' in tokens:
                     var = tokens
                     Signame = var[2]
                     Valuetable = var[3:7]
                     Sname = Signame
                     Vname = Valuetable 

                     wb = Workbook()
                     ws = wb.active
                     for row,i in enumerate(Sname):
                         column_cell = 'C'
                         ws[column_cell+str(row+2)] = str(i)
                     for row,i in enumerate(Vname):
                         column_cell = 'C'
                         ws[column_cell+str(row+2)] = str(i)
                     wb.save("row_creation_loop.xlsx")

:在代码片段中,将“n”的值写入excel列'B'时,它只获取最后存储的值/字符串并执行for循环并将其写入excel列,但正如我所期望的那样在每一行中写下每个“n”值。

0 个答案:

没有答案