Python을 사용하여 Oracle에서 데이터를 내보내는 동안 Excel이 충돌했습니다.

니 시카 간 라데

아래 코드는 Python을 사용하여 Oracle 데이터를 xlsx 형식으로 추출하기위한 것입니다. 코드는 성공적으로 실행되지만 xlsx 파일을 열면 오류가 발생합니다.

"파일 형식 또는 파일 확장자가 유효하지 않습니다. 파일이 손상되지 않았는지, 파일 확장자가 파일 형식과 일치하는지 확인하십시오."

Excel 충돌없이 데이터를 얻으려면 아래 코드에서 무엇을 변경해야합니까?

    import xlsxwriter
    from xlsxwriter import Workbook
    import cx_Oracle
    import datetime
    from datetime import date
    
    dsn_tns = cx_Oracle.makedsn('HOST', 'port', sid='sid') 
    conn = cx_Oracle.connect(user=r'username', password='password', dsn=dsn_tns)
    cursor = conn.cursor()
    xlsx_file = open("path.xlsx", "w")
    writer = xlsxwriter.Workbook("path.xlsx")
    worksheet = writer.add_worksheet()
    sql ='''
        SELECT * 
                FROM ( SELECT  STRGUID,ACTIVITYUSERID,ACTIVITYSESSIONID,ACTIVITYCODE,SERVERNAME,APPNAME,STARTTIME,ENDTIME,STRDESCRIPTION,
    (To_Date('12/30/1899', 'MM/DD/YYYY HH24:MI:SS')+ STARTTIME)Decoded_Date
    
                      FROM tablename
                    )SUB
                WHERE SUB.Decoded_Date between to_date('26-APR-2020', 'DD-MON-YYYY')
                      and to_date('26-JUN-2020', 'DD-MON-YYYY')
                      '''
                    
    cursor.execute(sql)
    for r, row in enumerate(cursor.fetchall()):
         for c, col in enumerate(row):
              worksheet.write(r, c, col)
    
    cursor.close()
    conn.close()
    xlsx_file.close()
니 시카 간 라데

아래 코드를 시도하고 python을 사용하여 oracle에서 xlsx 형식으로 데이터를 내보내는 작업을 성공적으로 수행했습니다.

import xlsxwriter
from xlsxwriter import Workbook
import cx_Oracle
import datetime
from datetime import date
import os
import logging
import sys
import getopt
import traceback

## Define Function
def writeToExcel(cur_sor):
    
    workbook = xlsxwriter.Workbook('path.xlsx')
    worksheet = workbook.add_worksheet("DATA") #Add a New Worksheet Name - 
    
 
    for row, row1 in enumerate(cur_sor.fetchall()):
        
    
         for col, col1 in enumerate(row1):
             
              
              worksheet.write(row, col, col1)
        

    workbook.close() 


def setSqlCommand():
    
    
    sqlCommand = '''
    SELECT * 
            FROM
                ( SELECT LROWNUM,DTIMESTAMP,LSCENARIO,LYEAR,LPERIOD,
                      LENTITY,LPARENT,LVALUE,LACCOUNT,LICP,LCUSTOM1,
                      LCUSTOM2,STRUSERNAME,STRSERVERNAME,
                      LACTIVITY,DDATAVALUE,BNODATA,
                      To_Date('12/30/1899','MM/DD/YYYY') +
                          DTIMESTAMP as Decoded_Date
                  FROM tablename
                ) SUB
            WHERE SUB.Decoded_Date 
                  <= to_date('28-JUN-2020', 'DD-MON-YYYY')
                  '''
    return sqlCommand


# Function to Execute Sql commands over TNS
def runSqlTNS (sqlCommand, username, password , hostName, portNumber, sID):
    
    
        
    dsn_tns = cx_Oracle.makedsn('HOST', 'PORT', sid='SERVICEID') 
    
    db = cx_Oracle.connect(user=r'USERNAME', password='PASSWORD', dsn=dsn_tns)
    
    cursor = db.cursor()
    cursor.execute(sqlCommand)
 
    return cursor

def main(argv=None):

#Setup Logging Information
        logging.basicConfig(filename='PATH/myapp.log', level=logging.INFO, format='%(asctime)s %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p')
        logging.info('Started')

        username = 'USERNAME'
        password = 'PASSWORD'
        #Define dsn entries to create a tns connection
        hostName = 'HOST'
        portNumber = 'PORT'
        sid = 'SERVICEID'
        #
        try:
                sqlCommand = setSqlCommand()
        except Exception as e:
                logging.info('Function - sqlCommand - In Exception')
                logging.info(traceback.print_exc())

        try:
            
            
            c = runSqlTNS(sqlCommand, username, password , hostName, portNumber, sid)
        except Exception as e:
                logging.info('Function - runSql In Exception')
                logging.info(traceback.print_exc())
        try:
            
            writeToExcel(c) # Send the Cursor to writetoExcel Function
            c.close()
        except Exception as e:
                logging.info('Function - writeToExcel In Exception')
                logging.info(traceback.print_exc())

if __name__ == "__main__":

    main(sys.argv)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Oracle에서 owner.table을 사용하여 데이터를 삽입하는 동안 오류가 발생했습니다. 소유자없이 작동합니다.

분류에서Dev

Thread에서 MessageBox를 시작하는 동안 충돌이 발생했습니다.

분류에서Dev

쿼리 내에서 BigDecimal을 사용하는 동안 mongoDB에서 데이터를 가져올 수 없습니다.

분류에서Dev

Pandas 데이터 프레임을 사용하여 CSV에서 테이블로 데이터를로드하는 동안 오류가 발생했습니다.

분류에서Dev

Android에서 Volley를 사용하여 HTTP GET 요청을 보내는 동안 오류가 발생했습니다.

분류에서Dev

업데이트하는 동안 그놈이 우분투에서 충돌했습니다.

분류에서Dev

Python 3.4.4를 사용하여 데이터 프레임에서 문자열의 하위 문자열을 교체하는 동안 문제가 발생했습니다.

분류에서Dev

phonegap 응용 프로그램에서 sqlite를 사용하여 내장 데이터베이스를 구현하는 동안 오류가 발생했습니다.

분류에서Dev

파일을 업로드하는 동안 데이터를 서버로 보내는 방법은 무엇입니까?

분류에서Dev

R을 사용하여 Yahoo Finance에서 데이터를 다운로드하는 동안 오류가 발생하기 시작했습니다.

분류에서Dev

보고서에 더 적은 데이터를 표시하지만 Excel에서 데이터를 내보내는 동안 더 많은 데이터를 내 보냅니다.

분류에서Dev

Sidekiq을 사용하여 이메일을 보내는 동안 Redis를 사용하지 않을 수 있습니까?

분류에서Dev

AutoLayout을 사용하여 UITableView에 addSubview 후 충돌이 발생했습니다.

분류에서Dev

aiosqlite python 라이브러리를 사용하여 데이터베이스에 연결하는 동안 오류가 발생했습니다.

분류에서Dev

jquery를 사용하여 데이터베이스에 데이터를 보내는 동안 버튼이 활성화되는 것을 무효화하는 방법은 무엇입니까?

분류에서Dev

JSP를 사용하여 Tomcat 서버의 Oracle 데이터베이스에 연결하는 동안 오류가 발생했습니다.

분류에서Dev

gridview에서 Excel을 내보내는 동안 이미지 제거

분류에서Dev

병합 문이 자체 조인 테이블을 삽입하는 동안 외래 키와 충돌했습니다.

분류에서Dev

class가 스레드에서 확장되는 동안 resultreceiver를 사용하여 데이터를 보내는 방법

분류에서Dev

dbWriteTable을 사용하여 Linux 서버에서 SQL Server로 데이터를 쓰는 동안 오류가 발생했습니다.

분류에서Dev

PHP를 사용하여 내보내는 동안 Excel에서 행 삭제

분류에서Dev

Weblogic을 사용하여 데이터 소스를 구성하는 동안 createSQLException 오류가 발생했습니다.

분류에서Dev

JSON을 사용하여 Python에서 Tableau로 데이터를 내보내시겠습니까?

분류에서Dev

외래 키 제한을 사용하는 동안 PHP를 사용하여 SQL 테이블에서 데이터를 가져 오기 위해 mysql_num_rows ()를 사용하는 동안 오류가 발생했습니다.

분류에서Dev

OGM 드라이버를 사용하여 Neo4j 데이터베이스에서 데이터를로드하는 동안 NullPointerException이 발생했습니다.

분류에서Dev

서버로 데이터를 보내는 동안 Python Flask Socketio BadNamespaceError

분류에서Dev

C # Windows 애플리케이션에서 CodeXml을 사용하여 데이터 세트를 Excel로 내보내는 방법은 무엇입니까?

분류에서Dev

푸시 팝 탐색을 사용하여 여러 뷰 컨트롤러간에 데이터를 전달하는 동안 문제가 발생했습니다.

분류에서Dev

검도 UI 라이브러리를 사용하여 데이터 소스에 항목을 삽입하는 동안 오류가 발생했습니다.

Related 관련 기사

  1. 1

    Oracle에서 owner.table을 사용하여 데이터를 삽입하는 동안 오류가 발생했습니다. 소유자없이 작동합니다.

  2. 2

    Thread에서 MessageBox를 시작하는 동안 충돌이 발생했습니다.

  3. 3

    쿼리 내에서 BigDecimal을 사용하는 동안 mongoDB에서 데이터를 가져올 수 없습니다.

  4. 4

    Pandas 데이터 프레임을 사용하여 CSV에서 테이블로 데이터를로드하는 동안 오류가 발생했습니다.

  5. 5

    Android에서 Volley를 사용하여 HTTP GET 요청을 보내는 동안 오류가 발생했습니다.

  6. 6

    업데이트하는 동안 그놈이 우분투에서 충돌했습니다.

  7. 7

    Python 3.4.4를 사용하여 데이터 프레임에서 문자열의 하위 문자열을 교체하는 동안 문제가 발생했습니다.

  8. 8

    phonegap 응용 프로그램에서 sqlite를 사용하여 내장 데이터베이스를 구현하는 동안 오류가 발생했습니다.

  9. 9

    파일을 업로드하는 동안 데이터를 서버로 보내는 방법은 무엇입니까?

  10. 10

    R을 사용하여 Yahoo Finance에서 데이터를 다운로드하는 동안 오류가 발생하기 시작했습니다.

  11. 11

    보고서에 더 적은 데이터를 표시하지만 Excel에서 데이터를 내보내는 동안 더 많은 데이터를 내 보냅니다.

  12. 12

    Sidekiq을 사용하여 이메일을 보내는 동안 Redis를 사용하지 않을 수 있습니까?

  13. 13

    AutoLayout을 사용하여 UITableView에 addSubview 후 충돌이 발생했습니다.

  14. 14

    aiosqlite python 라이브러리를 사용하여 데이터베이스에 연결하는 동안 오류가 발생했습니다.

  15. 15

    jquery를 사용하여 데이터베이스에 데이터를 보내는 동안 버튼이 활성화되는 것을 무효화하는 방법은 무엇입니까?

  16. 16

    JSP를 사용하여 Tomcat 서버의 Oracle 데이터베이스에 연결하는 동안 오류가 발생했습니다.

  17. 17

    gridview에서 Excel을 내보내는 동안 이미지 제거

  18. 18

    병합 문이 자체 조인 테이블을 삽입하는 동안 외래 키와 충돌했습니다.

  19. 19

    class가 스레드에서 확장되는 동안 resultreceiver를 사용하여 데이터를 보내는 방법

  20. 20

    dbWriteTable을 사용하여 Linux 서버에서 SQL Server로 데이터를 쓰는 동안 오류가 발생했습니다.

  21. 21

    PHP를 사용하여 내보내는 동안 Excel에서 행 삭제

  22. 22

    Weblogic을 사용하여 데이터 소스를 구성하는 동안 createSQLException 오류가 발생했습니다.

  23. 23

    JSON을 사용하여 Python에서 Tableau로 데이터를 내보내시겠습니까?

  24. 24

    외래 키 제한을 사용하는 동안 PHP를 사용하여 SQL 테이블에서 데이터를 가져 오기 위해 mysql_num_rows ()를 사용하는 동안 오류가 발생했습니다.

  25. 25

    OGM 드라이버를 사용하여 Neo4j 데이터베이스에서 데이터를로드하는 동안 NullPointerException이 발생했습니다.

  26. 26

    서버로 데이터를 보내는 동안 Python Flask Socketio BadNamespaceError

  27. 27

    C # Windows 애플리케이션에서 CodeXml을 사용하여 데이터 세트를 Excel로 내보내는 방법은 무엇입니까?

  28. 28

    푸시 팝 탐색을 사용하여 여러 뷰 컨트롤러간에 데이터를 전달하는 동안 문제가 발생했습니다.

  29. 29

    검도 UI 라이브러리를 사용하여 데이터 소스에 항목을 삽입하는 동안 오류가 발생했습니다.

뜨겁다태그

보관