# coding=UTF-8 import xlrd import xlwt from xlutils.copy import copy import requests,re,time import pymssql def con_sql(ssql): #連接SQL conn = pymssql.connect(host='xxxxx', user='xxxxxxxxx', password='xxxxxx', database='xxxxxxxxxxx', charset='utf8') #查看連接是否成功 cursor = conn.cursor() sql = ssql cursor.execute(sql) #用一個rs變量獲取數據 rs = cursor.fetchall() conn.close() return rs def write_excel_xls(path, sheet_name, value): index = len(value) # 獲取需要寫入數據的行數 workbook = xlwt.Workbook() # 新建一個工作簿 sheet = workbook.add_sheet(sheet_name) # 在工作簿中新建一個表格 for i in range(0, index): for j in range(0, len(value[i])): sheet.write(i, j, value[i][j]) # 像表格中寫入數據(對應的行和列) workbook.save(path) # 保存工作簿 print("xls格式表格寫入數據成功!") def write_excel_xls_append(path, value): index = len(value) # 獲取需要寫入數據的行數 workbook = xlrd.open_workbook(path) # 打開工作簿 sheets = workbook.sheet_names() # 獲取工作簿中的所有表格 worksheet = workbook.sheet_by_name(sheets[0]) # 獲取工作簿中所有表格中的的第一個表格 rows_old = worksheet.nrows # 獲取表格中已存在的數據的行數 new_workbook = copy(workbook) # 將xlrd對象拷貝轉化爲xlwt對象 new_worksheet = new_workbook.get_sheet(0) # 獲取轉化後工作簿中的第一個表格 for i in range(0, index): for j in range(0, len(value[i])): new_worksheet.write(i + rows_old, j, value[i][j]) # 追加寫入數據,注意是從i+rows_old行開始寫入 new_workbook.save(path) # 保存工作簿 print("xls格式表格【追加】寫入數據成功!") def read_excel_xls(path): workbook = xlrd.open_workbook(path) # 打開工作簿 sheets = workbook.sheet_names() # 獲取工作簿中的所有表格 worksheet = workbook.sheet_by_name(sheets[0]) # 獲取工作簿中所有表格中的的第一個表格 for i in range(0, worksheet.nrows): for j in range(0, worksheet.ncols): print(worksheet.cell_value(i, j), "\t", end="") # 逐行逐列讀取數據 print() ######################################################################################### otherStyleTime = time.strftime("%Y%m%d%H%M%S", time.localtime(time.time())) book_name_xls = f'D:\\關鍵詞搜索工作簿_{str(otherStyleTime)}.xls' sheet_name_xls = '關鍵詞搜索' value_title = [["搜索詞", "分詞結果","推薦詞", "搜索結果", "商品名稱", "所屬一級分類","所屬二級分類","所屬三級分類","所屬品牌"] ] write_excel_xls(book_name_xls, sheet_name_xls, value_title) ser='D:\\se.txt' with open(ser,'r')as e: for se in e.readlines(): print(se) r1 = requests.get(f'http://api.xxxxxxxxxxxxxxxx/directsearch/search?source=all50keyword&keyword={se}&showFlag=1,' '3&selectType=2&promotionChannelType=2&isExcludeJiCai=1&appId=110001&platform=pc&ip=127.0.0.1&sortBy=vcdesc&page=1&pageSize=10') pat = re.compile(r'Id":(.*?),', re.S) result = pat.findall(r1.text) pat2 = re.compile(r'tokens":"(.*?)"', re.S) pat3 = re.compile(r'effectiveTokens":"(.*?)"', re.S) result2 = pat2.findall(r1.text) result3 = pat3.findall(r1.text) #獲取商品skuid j=[] for i in result: #i= str(i) i=re.findall(r"\d{9}",i) j.append(i) for z in j: if z==[]: j.remove(z) #循環SKUID寫EXECL for i in j: # 寫入EXECL sql=f"""SELECT p.Name , p.Brand , CategoryName1 , CategoryName2 , CategoryName3 FROM dbo.t_Product_Product p INNER JOIN ( SELECT c.Id , CategoryName1 = a.Name , CategoryName2 = b.Name , CategoryName3 = c.Name FROM t_Product_Category a INNER JOIN t_Product_Category b ON a.Id = b.ParentId AND a.Mark > 0 AND b.Mark > 0 INNER JOIN t_Product_Category c ON b.Id = c.ParentId AND c.Mark > 0 ) t ON p.CategoryId3 = t.Id WHERE p.Mark > 0 AND p.Id={i[0]}""" res_sql = con_sql(sql) print(res_sql) #元組取值 for o in res_sql: print(o) #調用方法執行 value1 = [[se, result2,result3, str(i[0]),o[0],o[2],o[3],o[4],o[1]]] write_excel_xls_append(book_name_xls, value1) read_excel_xls(book_name_xls)
pyhton3 execl 數據插入追加
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.