python自動創建Excel,且文件名和內容從另一個Excel中自動獲取


用到了兩個庫,xlrd和xlwt
xlrd是讀excel,xlwt是寫excel的庫

1)xlwd用到的方法:

xlwt.Workbook()是創建了一個空文件對象

.add_sheet()為空文件對象,是在該文件中建立一個工作表,並返回工作表對象

.write(row,col,data)為工作表對象,表示在第row+1行第col列添加data數據

.save('文件名.xls')為空文件對象,最后保存。

2)xlrd用到的方法:

打開excel文件讀取數據

data = xlrd.open_workbook('文件名.xls')

常用代碼:

#通過名稱獲取   table = data.sheet_by_name(u'Sheet1')

獲取整行和整列的值(數組)  
        table.row_values(i)
        table.col_values(i)

獲取行數和列數  
        nrows = table.nrows 
        ncols = table.ncols



==========下面是就是實現代碼=================
 1 import xlwt
 2 import xlrd
 3 # 一:.Workbook 創建工作簿,目前空白
 4 
 5 testbook = xlwt.Workbook(encoding='utf-8')
 6 # 二:創建sheet頁即工作表,對象是工作簿
 7 test_sheet = testbook.add_sheet('新新人類')
 8 # 三:寫入數據,1、下面是從別的文件讀取的數據,所以先打開一個文件
 9 data1 = xlrd.open_workbook('C:\\Users\\ccccc\\Documents\\Python學習筆記\\新新人類模板.xls')
10 # 2、再打開工作表
11 table1 = data1.sheet_by_name(u'Sheet1')
12 # 3、row_values 獲取這個工作表第0行的整行數據,返回數組類型
13 name1 = table1.row_values(0)
14 # 4、獲取這個工作表的列數,返回int
15 nrows1 = table1.ncols
16 # 5、下面循環把第0行所有列的數據的依次寫入之前創建的工作表test_sheet
17 for j in range(nrows1):
18     # 6、寫入數據,write(row,col,data)為工作表對象,表示在第row+1行第col列添加data數據
19     test_sheet.write(0, j, name1[j])
20 
21 #  四:保存文件名,下面是從別的文件獲取文件名
22 data = xlrd.open_workbook('C:\\Users\\ccccc\\Documents\\Python學習筆記\\新新人類編號.xls')
23 table = data.sheet_by_name(u'Sheet1')
24 name = table.col_values(0)
25 bank = table.col_values(1)
26 nrows = table.nrows
27 for i in range(nrows):
28         bank1 = bank[i]
29         # 把返回的數組里的每個先賦值變量bank1,再截取字符串的前4個,這里可以先加個判斷是否有4位,否則不足4位會報錯
30         bank2 = bank1[0:4]
31         # 四、save保存文件
32         testbook.save('C:\\Users\\ccccc\\Documents\\Python學習筆記\\'+'新新-'+name[i]+'-'+bank2+'-.xls')


 

 

 

 糾正在最后

標題里說了從另一個Excel獲取,代碼是從兩個Excel分別獲取的,代碼可以優化為1個Excel,數據放兩個工作表。





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM