當前位置:首頁 » 數據倉庫 » xlwt資料庫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

xlwt資料庫

發布時間: 2022-04-15 11:14:06

A. 如何通過python快速輸出資料庫數據到excel

下載擴展庫 xlrd 讀excle xlwt 寫excle 直接在網路上搜就能下載 下載後使用 import xlrd 就可以讀excle文件了 打開文件: xls = xlrd.open_workbook(fileName)!

B. 求助用python從資料庫取數據動態生成表格的方法

一、可使用的第三方庫
python中處理excel表格,常用的庫有xlrd(讀excel)表、xlwt(寫excel)表、openpyxl(可讀寫excel表)等。xlrd讀數據較大的excel表時效率高於openpyxl,所以我在寫腳本時就採用了xlrd和xlwt這兩個庫。介紹及下載地址為:http://www.python-excel.org/ 這些庫文件都沒有提供修改現有excel表格內容的功能。一般只能將原excel中的內容讀出、做完處理後,再寫入一個新的excel文件。
二、常見問題
使用python處理excel表格時,發現兩個個比較難纏的問題:unicode編碼和excel中記錄的時間。
因為python的默認字元編碼都為unicode,所以列印從excel中讀出的中文或讀取中文名的excel表或sheet時,程序提示錯誤UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)。這是由於在windows中,中文使用了gb2312編碼方式,python將其當作unicode和ascii來解碼都不正確才報出的錯誤。使用VAR.encode('gb2312')即可解決列印中文的問題。(很奇怪,有的時候雖然能列印出結果,但顯示的不是中文,而是一堆編碼。)若要從中文文件名的excel表中讀取數據,可在文件名前加『u』表示將該中文文件名採用unicode編碼。
有excel中,時間和日期都使用浮點數表示。可看到,當『2013年3月20日』所在單元格使用『常規』格式表示後,內容變為『41353』;當其單元格格式改變為日期後,內容又變為了『2013年3月20日』。而使用xlrd讀出excel中的日期和時間後,得到是的一個浮點數。所以當向excel中寫入的日期和時間為一個浮點數也不要緊,只需將表格的表示方式改為日期和時間,即可得到正常的表示方式。excel中,用浮點數1表示1899年12月31日。
三、常用函數
以下主要介紹xlrd、xlwt、datetime中與日期相關的函數。

import xlrd
import xlwt
from datetime

def testXlrd(filename):
book=xlrd.open_workbook(filename)
sh=book.sheet_by_index(0)
print "Worksheet name(s): ",book.sheet_names()[0]
print 'book.nsheets',book.nsheets
print 'sh.name:',sh.name,'sh.nrows:',sh.nrows,'sh.ncols:',sh.ncols
print 'A1:',sh.cell_value(rowx=0,colx=1)
#如果A3的內容為中文
print 'A2:',sh.cell_value(0,2).encode('gb2312')

def testXlwt(filename):
book=xlwt.Workbook()
sheet1=book.add_sheet('hello')
book.add_sheet('word')
sheet1.write(0,0,'hello')
sheet1.write(0,1,'world')
row1 = sheet1.row(1)
row1.write(0,'A2')
row1.write(1,'B2')

sheet1.col(0).width = 10000

sheet2 = book.get_sheet(1)
sheet2.row(0).write(0,'Sheet 2 A1')
sheet2.row(0).write(1,'Sheet 2 B1')
sheet2.flush_row_data()

sheet2.write(1,0,'Sheet 2 A3')
sheet2.col(0).width = 5000
sheet2.col(0).hidden = True

book.save(filename)

if __name__=='__main__':
testXlrd(u'你好。xls')
testXlwt('helloWord.xls')
base=datetime.date(1899,12,31).toordinal()
tmp=datetime.date(2013,07,16).toordinal()
print datetime.date.fromordinal(tmp+base-1).weekday()

C. python讀取excel值資料庫更改

xlwt:寫入excel表格 ,用這個之前需要先導入模塊 xlwt: import xlwt
xlrd:讀取excel,用這個之前需要先導入模塊 xlwt:import xlrd
注意:excel表中取值也是用索引,也是從0開
比如:(行的索引,列的索引)
(0,0)表示第一行,第一個空格
(0,3)表示第一行的第4個空格裡面的值
(3,0)表示第4列,第一個空格裡面的值
excel寫數據'''
execel=xlwt.Workbook() #新建一個excle表格
sheet=execel.add_sheet('sheet1') #創建一個sheet
#在sheet中寫入數據,0,0,表示excel表格中的第一行,第一列
sheet.write(0,0,'username')
execel.save('0519.xls') #保存這個excel文件,名稱叫0529.xls,此時打開文件第一行第一列寫入了數據'username'

D. odoo8.0 XP可以裝嗎

1. 更新系統組件
sudo apt-get update
sudo apt-get dist-upgrade

2.增加OpenERP用戶
(如果之前用apt-get 或者deb方式安裝過,先刪除這個用戶重新再創建下 sudo userdel openerp)
(一樣的,如果有 /opt/openerp 這個目錄 也先刪除掉sudo rm -r /opt/openerp)

sudo adser --system --home=/opt/openerp --group openerp
openerp用戶被加入system組,該用戶不能夠從終端登錄。

需要openerp用戶操作時,可以用下面的命令切換 sudo su - openerp -s /bin/bash
完成相關操作後可以用exit退出openerp用戶shell

3.安裝並配置資料庫

進入postgres用戶shell(postgres是資料庫默認的管理員,由安裝程序創建)
sudo su - postgres

為OE創建資料庫用戶,按照提示輸入用戶密碼。
createuser --createdb --username postgres --no-createrole --no-superuser --pwprompt openerp
(要刪除以前自動安裝殘留的postgresql 裡面的 openerp用戶 用dropuser openerp)

退出postgres用戶shell
exit

4.安裝OE的Python依賴包

sudo apt-get install python-dateutil python-docutils python-feedparser python-gdata \
python-jinja2 python-ldap python-libxslt1 python-lxml python-mako python-mock python-openid \
python-psycopg2 python-psutil python-pybabel python-pychart python-pydot python-pyparsing \
python-reportlab python-simplejson python-tz python-unittest2 python-vatnumber python-vobject \
python-webdav python-werkzeug python-xlwt python-yaml python-zsi python-pyPdf

6月6日起 需要 sudo apt-get install python-requests
以及:sudo apt-get install python-passlib

7月9日起
apt-get install python-decorator

3月20日的版本好像報價單也不能打,
需要裝 wkhtmltopdf 0.12.0 , gist.github.com/slickplaid/5557321
不過這方法安裝好像很費時,等新版本出來再看看,反正正式要用也等正式版吧,或者用2月26日那個版本。
deb安裝就搞定,2月26日之後的版本,好像報表這塊改動比較多。
源碼安裝的,也可以下載了2月26日的版本 停掉服務 替換 openerp 目錄。

5.安裝OE伺服器

首先下載OE源碼包,這里下載OpenERP8.0最新開發版本
放開目錄許可權:
sudo chmod -R 777 /opt/openerp
進入目錄:
cd /opt/openerp

下載最新的源碼包:
wget ightly.openerp.com/trunk/nightly/src/openerp-8.0dev-latest.tar.gz
最新的 odoo源碼 應該在 codeload.github.com/odoo/odoo/zip/master

把源文件解壓到openerp用戶家目錄下:
sudo tar xvf openerp-8.0dev-latest.tar.gz

odoo 注意文件名變化 用: unzip master 就好了

把文件的所有者改為openerp用戶:
sudo chown -R openerp: *

這里建議把伺服器組件的安裝目錄修改為server,以便於後續修改時不必修改配置文件。
在當前目錄創建目錄,給目錄最大許可權,移動剛才解壓的目錄到server 目錄:
sudo mkdir server
sudo chmod -R 777 server
sudo mv -T openerp-8.0dev-20140318-000101 server
(注意這里,目錄名"openerp-8.0dev-20140318-000101"會因為你下載的時間不同而有所不同。
也注意odoo 的目錄)

注意,比較推薦用git方式下載,
先apt-get install git
然後
git clone github.com/odoo/odoo.git

git pull 進行差異更新
git checkout 8.0(切換到8.0版本)
git checkout 7.0(切換到7.0版本)

6.配置OpenERP服務
復制OE的默認配置文件到/etc/並修改所有者及許可權:
sudo cp /opt/openerp/server/install/openerp-server.conf /etc/
sudo chown openerp: /etc/openerp-server.conf
sudo chmod 640 /etc/openerp-server.conf

修改配置文件:
sudo vi /etc/openerp-server.conf

這里需要修改資料庫用戶的密碼,為第四步時設定的密碼(這里用password做參考值),並增加日誌文件的路徑:

[options]
; This is the password that allows database operations:
; admin_passwd = admin
db_host = 127.0.0.1
db_port = 5432
db_user = openerp
db_password = password
logfile = /var/log/openerp/openerp-server.log
addons_path = /opt/openerp/server/addons

說明:Odoo8 的 addons 目錄變位置了,加一句

使用openerp用戶shell登錄,驗證openerp是否已正確安裝:
sudo su - openerp -s /bin/bash
/opt/openerp/server/openerp-server

最後一行顯示 openerp.service.server: HTTP service (werkzeug) running on 0.0.0.0:8069表明openerp伺服器組件已經安裝正確,
你可以用從瀏覽器輸入IP:8069來連接oe(其中IP是OE伺服器的IP,本機可以用localhost:8069,或者127.0.0.1:8069連接。
此時你可以按Ctr+C停止OE服務。
如果發現錯誤提示,通常是依賴包沒有正確安裝。按照第五步的方法安裝缺少的依賴包。

7.增加啟動腳本
增加啟動腳本/etc/init.d/openerp :
sudo vi /etc/init.d/openerp

輸入如下內容(可以粘貼復制的),:w 保存:q退出

#!/bin/sh
### BEGIN INIT INFO
# Provides: openerp-server
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Should-Start: $network
# Should-Stop: $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Enterprise Resource Management software
# Description: Open ERP is a complete ERP and CRM software.
### END INIT INFO
PATH=/bin:/sbin:/usr/bin
DAEMON=/opt/openerp/server/openerp-server
NAME=openerp-server DESC=openerp-server
# Specify the user name (Default: openerp).
USER=openerp
# Specify an alternate config file (Default: /etc/openerp-server.conf).
CONFIGFILE="/etc/openerp-server.conf"
# pidfile
PIDFILE=/var/run/$NAME.pid
# Additional options that are passed to the Daemon.
DAEMON_OPTS="-c $CONFIGFILE"
[ -x $DAEMON ] || exit 0
[ -f $CONFIGFILE ] || exit 0
checkpid() {
[ -f $PIDFILE ] || return 1
pid=`cat $PIDFILE` [ -d /proc/$pid ] && return 0 return 1
}
case "${1}" in
start)
echo -n "Starting ${DESC}: "
start-stop-daemon --start --quiet --pidfile ${PIDFILE} \
--chuid ${USER} --background --make-pidfile \
--exec ${DAEMON} -- ${DAEMON_OPTS}
echo "${NAME}."
;;
stop)
echo -n "Stopping ${DESC}: "
start-stop-daemon --stop --quiet --pidfile ${PIDFILE} \
--oknodo echo "${NAME}."
;;
restart|force-reload)
echo -n "Restarting ${DESC}: "
start-stop-daemon --stop --quiet --pidfile ${PIDFILE} \
--oknodo
sleep 1
start-stop-daemon --start --quiet --pidfile ${PIDFILE} \
--chuid ${USER} --background --make-pidfile \
--exec ${DAEMON} -- ${DAEMON_OPTS}
echo "${NAME}."
;;
*)
N=/etc/init.d/${NAME}
echo "Usage: ${NAME} {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0

建立日誌文件的目錄,並修改許可權:
sudo mkdir /var/log/openerp
sudo chown openerp:root /var/log/openerp
sudo chmod +x /etc/init.d/openerp

啟動服務並測試腳本是否可以正常工作:
sudo /etc/init.d/openerp start

netstat -at
兩個命令之間間隔一段時期,讓OE伺服器啟動,結果中表明有一行
tcp 0 0 *:8069 *:* LISTEN
表明腳本啟動OE成功。
使用瀏覽器web客戶端打開,可以進入資料庫管理頁面。建議在此修改資料庫管理員用戶密碼。
默認的用戶名和密碼問admin、admin。然後停止openerp:
sudo /etc/init.d/openerp stop

訪問日誌文件及網路監聽,確認服務已經停止:
netstat -at

8.設置開機自動啟動:
sudo update-rc.d openerp defaults

查看日誌:
less /var/log/openerp/openerp-server.log

創建資料庫,開始openerp之旅吧!

注意這個案例源碼運行的 openerp 目錄在 /opt/openerp/server/openerp ,
所以要添加 擴展 添加 到 /opt/openerp/server/openerp/addons 目錄
需要使用 winscp 和自動備份 模塊的的,記得放開 許可權 sudo chmod -R 777 /opt/openerp/server/openerp/addons
和自動備份模塊的相應許可權。

更新:下載最新的源碼包,停掉服務sudo /etc/init.d/openerp stop
直接用最新的openerp目錄覆蓋對應目錄就好了,

然後再啟動服務sudo /etc/init.d/openerp start

E. 爬蟲數據用什麼資料庫儲存最合適

  • txt文件

  • MySQL資料庫:

  • xlwt表

  • MongoDB資料庫

這幾種都可以用來存儲爬蟲數據

F. Python怎樣實現數據篩選之後不存成excel

1 讀取Excel使用xlrd

#1、導入擴展包
importxlrd
#2、打開Excel文件讀取數據
data=xlrd.open_workbook('excelFile.xls')

2 操作mysql使用MySQLdb

importMySQLdb
#打開資料庫連接
db=MySQLdb.connect("localhost","testuser","test123","TESTDB",charset='utf8')
#使用cursor()方法獲取操作游標
cursor=db.cursor()
#使用execute方法執行SQL語句
cursor.execute("SELECTVERSION()")
#使用fetchone()方法獲取一條數據
data=cursor.fetchone()
print"Databaseversion:%s"%data
#關閉資料庫連接d
b.close()

3 寫入Excel使用xlwt

importxlwt
#創建一個workbook設置編碼
workbook=xlwt.Workbook(encoding='utf-8')
#創建一個worksheet
worksheet=workbook.add_sheet('MyWorksheet')

#寫入excel
#參數對應行,列,值
worksheet.write(1,0,label='thisistest')

#保存
workbook.save('Excel_test.xls')

G. 如何使用python 統計網站訪問量並生成報表

統計網站訪問量
統計出每個IP的訪問量有多少?(從日誌文件中查找)

#!/usr/bin/env python
#!coding=utf-8
list = []
f = file('/tmp/1.log')
str1 = f.readlines()
f.close()
for i in str1:
ip = i.split()[0] //split()通過指定分隔符對字元串進行切片,默認為所有的空字元;split分隔後是一個列表,[0]表示取其第一個元素;
list.append(ip)//追加
list_num = set(list)
for j in list_num:
num = list.count(j)
print '%s : %s' %(j,num)

生成報表
#_*_coding:utf-8_*_

import MySQLdb
import xlwt
from datetime import datetime

def get_data(sql):

# 創建資料庫連接.
conn = MySQLdb.connect(host='127.0.0.1',user='root'\
,passwd='123456',db='test',port=3306,charset='utf8')
# 創建游標
cur = conn.cursor()
# 執行查詢,
cur.execute(sql)
# 由於查詢語句僅會返回受影響的記錄條數並不會返回資料庫中實際的值,所以此處需要fetchall()來獲取所有內容。
result = cur.fetchall()
#關閉游標
cur.close()
#關閉資料庫連接
conn.close
# 返給結果給函數調用者。
return result

def write_data_to_excel(name,sql):

# 將sql作為參數傳遞調用get_data並將結果賦值給result,(result為一個嵌套元組)
result = get_data(sql)
# 實例化一個Workbook()對象(即excel文件)
wbk = xlwt.Workbook()
# 新建一個名為Sheet1的excel sheet。此處的cell_overwrite_ok =True是為了能對同一個單元格重復操作。
sheet = wbk.add_sheet('Sheet1',cell_overwrite_ok=True)
# 獲取當前日期,得到一個datetime對象如:(2016, 8, 9, 23, 12, 23, 424000)
today = datetime.today()
# 將獲取到的datetime對象僅取日期如:2016-8-9
today_date = datetime.date(today)
# 遍歷result中的沒個元素。
for i in xrange(len(result)):
#對result的每個子元素作遍歷,
for j in xrange(len(result[i])):
#將每一行的每個元素按行號i,列號j,寫入到excel中。
sheet.write(i,j,result[i][j])
# 以傳遞的name+當前日期作為excel名稱保存。
wbk.save(name+str(today_date)+'.xls')

# 如果該文件不是被import,則執行下面代碼。
if __name__ == '__main__':
#定義一個字典,key為對應的數據類型也用作excel命名,value為查詢語句
db_dict = {'test':'select * from student'}
# 遍歷字典每個元素的key和value。
for k,v in db_dict.items():
# 用字典的每個key和value調用write_data_to_excel函數。
write_data_to_excel(k,v)

H. 如何通過python快速輸出資料庫數據到excel

pip install xlwings
安裝這個包,然後網上找使用說明。該包在PYTHON中簡直可當成EXCEL的外掛了,可實時從EXCEL中讀取單元格中的數據,也可實時將數據傳遞到EXCEL中顯示。

I. 有哪些值得推薦的 Python 開發工具

前提:用來做數據處理和相關的系統開發
剛學python時,面對簡陋的官方版idle和一大堆開發平台和發行版,不知道究竟如何下手。在進行多方嘗試後,我最後的選擇是Anaconda + Pycharm,用anaconda集成的ipython做工作台,做一些分析和小段程序調試的工作,用Pycharm寫相應腳本和程序包的開發。這兩個工具都是跨平台的,也都有免費版本。
具體來說Anaconda集成了幾乎所有我需要的包庫,包含了我整個工作流程,做數據分析的pandas\scipy\numpy、繪圖的matplotlib、讀寫Excel文檔的xlrd/xlwt,鏈接SQL資料庫的SQLalchemy、機器學習框架sklearn等。對於Anaconda集成的兩個工作平台,Spyder——一個類似於Matlab和Rstudio的IDE,是專注於面向數據的分析的,因為其特點也主要是數據區的存在,可以即時知道變數值的變化;Ipython——一個基於cell的shell界面,可以理解為python自帶shell的增強版,它將程序分成一塊一塊的cell,每個cell可以包含多條語句,可以單獨調試運行,並將結果保存在內存中,cell之間可以相互調用,並保持一定的相互獨立。
可以說有了anaconda自帶的這兩個工具,足夠做數據處理相關的工作了(本身anaconda就是一個為了數據科學而誕生的發行版),但如果涉及到腳本程序和包的開發,感覺spyder還是有點弱,在試過IDE,代碼編輯器(比如visual code、sublime等)+插件,這兩種方案後,我最後選擇了集成度更高的成熟IDE——Pycharm替換spyder作為主要的開發平台,看我頭像也可以知道我是一個噴氣大腦的死忠,他們家的IDE真的很好用~理由如下:
1、首先作為學生,可以通過e郵箱申請到Jetbrains全家桶,即便無法獲取授權,pycharm的community版本免費並且功能足夠
2、對於pycharm,可以方便快捷地切換python不同版本的解釋器,甚至可以安裝相同版本的python解釋器配置不同的開發環境,這可以解決有些包之間沖突的情況,也可以針對有些框架按需裝包;並且pycharm內置包管理,可以免去pip或者conda方式管理包。
3、pycharm這個IDE的顏色方案、拼寫補全、函數聯想、函數跳轉源代碼、斷點調試及debug等功能都讓我用的十分順手。
總之我現在的工作流程就是,先用對我需要的功能進行設計,而後在ipython界面下設計調試每個功能模塊,調試成功後放到pycharm中組合起來,寫成腳本文件,最後用pycharm做調試形成成品。
2017、10、25 補充:
Pycharm作為IDE還有兩個功能值得使用,一個是可以結合unitest包做我們開發模塊的單元測試,另一個就是與svn、git等版本工具合作進行我們程序的版本控制,此外,在最新版的pycahrm當中,除了左側折疊顯示程序層次,下方也有我們當前游標所在位置對應的層次,並可以方便進行跳轉。
總之,用pycharm寫python真是越用越順手~

J. python的庫,xlwt或者xlrd可以另存為html類型么

頁面上一般是沒有辦法直接顯示excel的,你可以遍歷這個數據,生成html顯示在頁面上