>  기사  >  백엔드 개발  >  Python에서 sqlite를 Excel(xls) 테이블로 내보내는 방법에 대한 자세한 예

Python에서 sqlite를 Excel(xls) 테이블로 내보내는 방법에 대한 자세한 예

黄舟
黄舟원래의
2017-07-17 14:54:163173검색

이 글에서는 sqlite데이터베이스를 Excel(xls) 테이블로 내보내는 방법을 구현하기 위한 Python을 주로 소개하고, Python의 연결, sqlite 데이터베이스용 쓰기 작업 패키지(xlwt) 생성 읽기 및 사용을 예제와 함께 분석합니다. 엑셀 테이블 관련 구현 기술, 필요한 친구들은 참고하면 됩니다.

이 글에서는 Python에서 sqlite 데이터베이스를 엑셀(xls) 테이블로 내보내는 방법을 설명합니다. 참고용으로 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

1. sliqte 라이브러리가 설치된 Python 환경이 설치되었다고 가정합니다

내 것은 Python2.5

2입니다. python xls 쓰기 작업 패키지(xlwt)를 실행하고

3을 설치합니다. 코드(db2xls.py)는 다음과 같습니다.

import sqlite3 as sqlite
from xlwt import *
#MASTER_COLS = ['rowid', 'type','name','tbl_name', 'rootpage','sql']
def sqlite_get_col_names(cur, table):
  query = 'select * from %s' % table
  cur.execute(query)
  return [tuple[0] for tuple in cur.description]
def sqlite_query(cur, table, col = '*', where = ''):
  if where != '':
    query = 'select %s from %s where %s' % (col, table, where)
  else:
    query = 'select %s from %s ' % (col, table)
  cur.execute(query)
  return cur.fetchall()
def sqlite_to_workbook(cur, table, workbook):
  ws = workbook.add_sheet(table)
  print 'create table %s.' % table
  for colx, heading in enumerate(sqlite_get_col_names(cur, table)):
      ws.write(0,colx, heading)
  for rowy,row in enumerate(sqlite_query(cur, table)):
    for colx, text in enumerate(row):
      ws.write(rowy+ 1, colx, text)
def main(dbpath):
  xlspath = dbpath[0:dbpath.rfind('.')] + '.xls'
  print "<%s> --> <%s>"% (dbpath, xlspath)
  db = sqlite.connect(dbpath)
  cur = db.cursor()
  w = Workbook()
  for tbl_name in [row[0] for row in sqlite_query(cur, &#39;sqlite_master&#39;, &#39;tbl_name&#39;, &#39;type = \&#39;table\&#39;&#39;)]:
    sqlite_to_workbook(cur,tbl_name, w)
  cur.close()
  db.close()
  if tbl_name !=[]: w.save(xlspath)
if name == "main":
  # arg == database path
  main(sys.argv[1])

4 사용법:

> python  <path>/db2xls.py  dbpath

올바른 경우 xls 데이터베이스 File

디렉터리에 동일한 이름이 생성됩니다.

위 내용은 Python에서 sqlite를 Excel(xls) 테이블로 내보내는 방법에 대한 자세한 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.