xlrd是python中一個第三方的用於讀取excle表格的模塊,不少企業在沒有使用計算機管理前大多使用表格來管理數據,因此導入表格仍是很是經常使用的!python
pip install xlrd
一個excle表格包含多個sheetmysql
一個sheet中包含多行多列面試
每一個單元格具有惟一的行號和列號sql
import xlrd # 讀取文件 work_book = xlrd.open_workbook("/Users/jerry/Desktop/公司機密數據.xlsx") # 選取一個表 # 獲取全部全部表格名稱 print(work_book.sheet_names()) # 選擇第2個 索引從0開始 sheet = work_book.sheet_by_index(1) # 表格名稱 print(sheet.name) # 行數 print(sheet.nrows) # 列數 print(sheet.ncols) #批量讀取行數據 # 取出第6行的所有內容包含數據類型 print(sheet.row(6)) # 取出第6行的內容包含數據類型 從第3列開始獲取 print(sheet.row_slice(6,start_colx=3)) # 取出第6行的內容包含數據類型 從第3列開始獲取 print(sheet.row_slice(6,start_colx=4,end_colx=5)) # 獲取該行全部數據類型 一數字表示 # print(sheet.row_types(6)) # print(sheet.row_values(6)) # 單元格的處理 print(sheet.cell(0,0).value) # 取值 print(sheet.cell(0,0).ctype) # 取類型 print(sheet.cell_value(2,0)) # 直接取值 print(sheet.row(0)[0]) # 先取行再取單元格 print(sheet.col(0)) # 第0列全部數據 print(sheet.col(0)) # 先取列再取單元格 print(sheet.cell_type(0,0)) # 單元格位置轉換 print(xlrd.cellname(2,1)) print(xlrd.cellnameabs(0,2)) print(xlrd.colname(5)) # 時間類型轉換 # print(sheet.cell(6,5).value) # print(xlrd.xldate_as_datetime(sheet.cell(6,5).value,1))
讀取一個報價單 其第二個sheet包含合併單元格數據庫
文件地址:https://share.weiyun.com/5GaLY2mjson
import xlrd sheet = xlrd.open_workbook("報價單.xlsx").sheet_by_index(1) def get_text(row,col): # 判斷該座標是不是被合併的單元格 合併單元格的數據都在合併區域的第一個位置 for ces in sheet.merged_cells: if (row >= ces[0] and row < ces[1]) and (col >= ces[2] and col < ces[3]): return sheet.cell(ces[0],ces[2]).value # 取出合併區域的第一個數據 return sheet.cell(row,col).value #正常取出對應數據 keys = sheet.row_values(1) # 獲取全部的列標題 data = [] for row in range(2,sheet.nrows): dic = {} for col in range(sheet.ncols): k = keys[col] #肯定key res = get_text(row,col) dic[k] = res # 肯定值 並存儲 data.append(dic) print(data) # 序列化爲json import json json.dump(data,open("test.json","wt"),ensure_ascii=False)
是python中一個第三方的用於寫入excle數據到表格的模塊app
用代碼來編寫exlce是很是低效的 因此該模塊瞭解便可。函數
import xlwt # 建立工做簿 work = xlwt.Workbook() # 建立一個表 sheet = work.add_sheet("員工信息數據") #建立一個字體對象 font = xlwt.Font() font.name = "Times New Roman" # 字體名稱 font.bold = True # 加粗 font.italic = True # 斜體 font.underline = True # 下劃線 #建立一個樣式對象 style = xlwt.XFStyle() style.font = font # 寫入標題 for k in keys: sheet.write(0,keys.index(k),k,style) # 寫入數據 for i in infos: for k in keys: sheet.write(1 + infos.index(i),keys.index(k),label = i[k]) # 保存至文件 work.save("test.xls")
面試題:字體
import xlrd import pymysql # 讀取文件 work_book = xlrd.open_workbook("/xxx/xxx.xlsx") # 選取一個表 sheet = work_book.sheet_by_index(0) # 遍歷表格數據 datas = [] for row in range(1,sheet.nrows): temp_list =[] for col in range(sheet.ncols): value = sheet.cell_value(row,col) temp_list.append(value) datas.append(temp_list) # 打開數據庫鏈接 db = pymysql.connect(host='localhost', port=3306, user='username', passwd='password', db='database_name', charset='utf8') # 使用cursor()方法獲取操做遊標 cursor = db.cursor() # SQL 插入語句 sql = "INSERT INTO SHOP(shop_code, shop_name, month) VALUES (%s,%s,%s)" try: # 執行sql語句 cursor.executemany(sql, datas) # 提交到數據庫執行 db.commit() except : # 若是發生錯誤則回滾 db.rollback() # 關閉遊標 cursor.close() # 關閉數據庫鏈接 db.close()