2015-01-04 4 views
0

테이블에 mutliple 값을 삽입하지만 구문 모르겠습니다 .. 내가 엑셀 ​​파일에서이 값을 읽고있다 ...pymssql : 나는 테이블에 여러 값을 삽입하려고

import xlrd 
import pymssql 

file_location = 'C:/Users/praveen/Downloads/OpTransactionHistory03-01-2015.xls' 

#Connecting SQL Server 
conn = pymssql.connect (host='host',user='user',password='pwd',database='Practice') 
cur = conn.cursor() 

# Open Workbook 
workbook = xlrd.open_workbook(file_location) 

# Open Worksheet 
sheet = workbook.sheet_by_index(0) 

for rows in range(13,sheet.nrows): 
    for cols in range(sheet.ncols): 
     cur.execute(
     " INSERT INTO MONTHLY_BUDGET VALUES (%s, %s, %s, %s, %s)" 
     %(sheet.cell_value(rows,cols))) <---Getting 5 values from here as expected,but not sure how to map these values to the table values.. 

conn.commit() 

문제 :

같이 ((행, COLS)를 sheet.cell_value)) 내가 한 번에 5 개 값을 삽입하고 그 값에서 제대로오고있다 :

31/12/2014 147801503777:Int.Pd:30-06-2014 to 30-12-2014 - 860.00 20,458.74 

만 t에서 그의 경우, 인수 번호는 그래서 난 오류가 무엇입니까 .. 일치되지 않습니다

TypeError: not enough arguments for format string 

테이블 구조 :

CREATE TABLE MONTHLY_BUDGET 
(
    SEQUENCE   INT IDENTITY, 
    TRANSACTION_DATE VARCHAR(100), 
    TRANSACTION_REMARKS VARCHAR(1000), 
    WITHDRAWL_AMOUNT VARCHAR(100), 
    DEPOSIT_AMOUNT  VARCHAR(100), 
    BALANCE_AMOUNT  VARCHAR(100) 
) 
+0

당신은 아마 데이터를 정기적 셀이 어떤 데이터 문제를 일으키는 셀이 할 무엇에 대한 자세한 정보를 제공해야합니다. –

답변

0

내가 전화 sheet.cell_value(rows,cols)는 하나 개의 값을 반환한다고 가정합니다.

그래서 아마 값이 도움이 될 수 수집 :

for rows in range(13,sheet.nrows): 
    arr = [] 
    for cols in range(5): 
     arr.append(sheet.cell_value(rows,cols)) 
    cur.execute(
     "INSERT INTO MONTHLY_BUDGET VALUES (%s, %s, %s, %s, %s)", 
     tuple(arr) 
    )