亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

Python openpyxl讀取Excel工作簿:從入門到實戰(zhàn)

Python openpyxl讀取Excel工作簿:從入門到實戰(zhàn) 前陣子同事甩給我一堆周報讓我用openpyxl讀取工作簿里的銷售數(shù)據(jù)再按城市匯個總。他以為這活兒至少得折騰一下午結(jié)果我花十分鐘寫了個腳本吃頓飯的功夫就跑完了。如果你也經(jīng)常被Excel表格折磨或者想把手動復(fù)制粘貼的活兒自動化openpyxl這個庫值得認真了解。它不是什么冷門工具而是Python生態(tài)里處理xlsx文件的主力庫讀取工作簿、讀取單元格、批量遍歷、處理合并單元格一套流程下來基本不會卡殼。這篇文章我就圍繞讀取工作簿展開把加載文件、定位工作表、讀單元格、踩過的坑、大文件優(yōu)化這些內(nèi)容一次講透連著代碼和注釋一并給到你可以直接拿去改。1. 為什么處理Excel我選openpyxl這個庫1.1 對比pandas、xlrd、xlwingsopenpyxl贏在哪遇到Excel處理很多人的第一反應(yīng)是pandas但我不建議一上來就開pandas。pandas的read_excel確實方便一行代碼能把工作表讀成DataFrame可它是個重型庫底層還要依賴其他解析器而且一旦涉及合并單元格、公式緩存、樣式保留、列格式識別這些細節(jié)pandas的可控性反而不好。尤其是當你只是想“打開工作簿、按行讀取、按條件過濾”的時候pandas屬于殺雞用牛刀還會讓腳本體積變大、啟動變慢。xlrd這個庫曾經(jīng)是讀取xlsx的主流選擇但新版xlrd已經(jīng)轉(zhuǎn)向只支持xls老格式xlsx的讀取被移除所以新項目再用它處理xlsx很容易踩版本坑。xlwings則是另一種思路它本質(zhì)上是調(diào)用本機安裝的Excel程序來操作文件功能強大但依賴GUI環(huán)境在服務(wù)器或者沒裝Office的機器上根本跑不起來自動化場景里非常受限。openpyxl的優(yōu)勢在于純Python實現(xiàn)不依賴Excel組件能讀能寫能處理樣式、公式、圖表、合并單元格、批注等細節(jié)而且對xlsx這種基于XML的壓縮格式解析得很穩(wěn)定。對“讀取工作簿”這種需求來說它是最穩(wěn)妥的選擇。我做文件數(shù)據(jù)處理的時候十次里有八次會選openpyxl收尾剩下兩次是因為對方給的是xls老文件才考慮先用工具轉(zhuǎn)個格式。1.2 安裝與版本別小看環(huán)境準備這步安裝很簡單直接pip搞定pip install openpyxl如果你在公司內(nèi)網(wǎng)環(huán)境可能需要換到內(nèi)部鏡像源這個按你們自己的網(wǎng)絡(luò)設(shè)置來。裝完之后可以在Python里確認一下版本python -c import openpyxl; print(openpyxl.__version__)建議用3.1以上版本早期的2.x版本雖然也能用但某些API表現(xiàn)不一樣比如合并單元格范圍的處理方式就改過。順便提一句openpyxl只認xlsx、xlsm這類基于Office Open XML格式的文件老版xls它是打不開的報錯也不是很友好。你要是收到的是.xls要么讓上游重新導(dǎo)出為.xlsx要么先用其他工具轉(zhuǎn)一下再跑腳本。2. 讀取工作簿的基本盤load_workbook與工作表導(dǎo)航2.1 load_workbook的完整參數(shù)認知讀取工作簿的入口是load_workbook我第一次用的時候只傳了個文件名后來才發(fā)現(xiàn)這函數(shù)的參數(shù)里藏著不少坑from openpyxl import load_workbook wb load_workbook(某銷售匯總.xlsx)默認情況下這個調(diào)用會把整個xlsx解析進內(nèi)存所有工作表、所有單元格對象都會被創(chuàng)建。如果文件不大感覺不到差異等你哪天拿到一個幾十MB的大表格就會明白普通模式到底有多吃內(nèi)存。load_workbook還有幾個關(guān)鍵參數(shù)read_only設(shè)置為True會進入只讀流式模式一行一行從文件里讀數(shù)據(jù)內(nèi)存占用大幅下降代價是部分高級操作不可用。后面我會專門展開講。data_only這個參數(shù)特別容易誤解它不是“只讀取數(shù)據(jù)”的意思而是“是否只讀取公式的緩存結(jié)果”。默認False拿到的是公式字符串比如“SUM(A1:A3)”設(shè)為True拿到的才是Excel計算后保存下來的數(shù)值。如果公式從沒被Excel真正計算過data_onlyTrue反而會返回None。keep_vba處理xlsm宏文件時使用如果你只想讀數(shù)據(jù)保持默認False就行。keep_links控制是否保留外部鏈接信息默認True。如果你的工作表里引用了別的工作簿加載時會嘗試解析這些鏈接某些文件會導(dǎo)致加載變慢純粹讀內(nèi)容的話可以設(shè)成False。除了傳文件路徑load_workbook也可以接收一個二進制流對象比如從內(nèi)存里讀from io import BytesIO from openpyxl import load_workbook data bytes_io.getvalue() wb load_workbook(BytesIO(data))這個技巧在做接口對接、文件上傳處理的時候很實用不用把臨時文件寫到磁盤上再讀。2.2 從工作簿到工作表再到單元格三步定位數(shù)據(jù)拿到工作簿對象之后第一件事不是急著讀單元格而是先摸清楚里面有幾張表、每張表叫什么。print(wb.sheetnames) # 全部工作表名稱列表 ws wb.active # 默認激活的工作表很多人習(xí)慣直接用wb.active但我要提醒一句active不一定永遠是第一個工作表它表示的是“上次打開時激活的那張表”有時候文件處理邏輯變了active也會跟著變。想穩(wěn)定定位某張表最好用表名索引ws wb[月度匯總]如果表名是動態(tài)的可以遍歷sheetnames挨個處理for name in wb.sheetnames: ws wb[name] print(name, ws.max_row, ws.max_column)這里有個常用技巧先打印每個sheet的行列范圍快速判斷表是不是空表、數(shù)據(jù)區(qū)域在哪再決定怎么處理。我做啥腳本都習(xí)慣先來這段“偵察代碼”省得后面讀取時對不上數(shù)據(jù)范圍。單元格的定位方式也很直接。你可以按Excel坐標寫cell ws[A1] print(cell.value)也可以按行列索引寫cell ws.cell(row1, column1)注意openpyxl的行列編號是從1開始的不是從0開始跟Python里list的索引習(xí)慣不一樣用錯的話讀到的值會整體偏移一行或一列。工作表本身還帶一些元信息偶爾也會用到ws.title # 表名 ws.sheet_state # visible / hidden / veryHidden ws.freeze_panes # 凍結(jié)窗格位置讀取工作簿不只是讀值表的隱藏狀態(tài)、凍結(jié)窗格這些信息也是可以在自動化流程里利用的比如跳過隱藏表不處理。3. 讀取單元格的幾種實用姿勢索引、切片與批量遍歷3.1 用字母坐標還是行列索引讀取單個單元格最直觀的方式就是字母坐標。value ws[B2].value這種方式適合快速讀取固定位置的字段比如表頭在某一行、匯總值在某個固定單元格。但如果要循環(huán)處理整張表我更推薦用cell(rowrow, columncol)這種索引方式col_index 2 total 0 for i in range(1, ws.max_row 1): value ws.cell(rowi, columncol_index).value if isinstance(value, (int, float)): total value行列索引的好處是可以用變量控制列號比如動態(tài)匹配某個字段在第幾列這在多張表結(jié)構(gòu)不一致的場景里非常管用。有時候你還需要在字母坐標和數(shù)字索引之間轉(zhuǎn)換openpyxl已經(jīng)給了工具函數(shù)from openpyxl.utils import get_column_letter, column_index_from_string print(get_column_letter(2)) # B print(column_index_from_string(B)) # 2比如別人給的Excel里表頭是“銷售額”但不知道它排在AB列還是CD列這時候可以先遍歷表頭用column_index_from_string把列字母轉(zhuǎn)成數(shù)字再統(tǒng)一按數(shù)字取數(shù)據(jù)。如果你想一口氣拿一整列或一整行openpyxl也支持類似切片的方式col_cells ws[A] # A列從第一行到已使用區(qū)域末尾的所有Cell對象 row_cells ws[1] # 第一行的Cell對象拿到的是一組Cell對象用的時候記得取它的.value屬性。這種寫法比較省事但可讀性不如iter_rows清晰我建議新手還是優(yōu)先掌握行列索引和遍歷方法。3.2 批量遍歷iter_rows、rows與values_only讀取工作簿的高頻場景其實是“整張表讀出來”這時候一個單元格一個單元格取太慢了用iter_rows最順手for row in ws.iter_rows(min_row1, max_rowws.max_row, min_col1, max_colws.max_col, values_onlyTrue): print(row)iter_rows返回的是一個生成器每輪迭代給出一行數(shù)據(jù)。如果不寫values_onlyTrue它返回的是這一行所有Cell對象你拿到后還得再取.value設(shè)置了values_onlyTrue直接就是單元格的值元組處理起來干凈得多。如果你嫌參數(shù)太長還有個等價捷徑for row in ws.iter_rows(): pass省略參數(shù)時它會按工作表的實際使用范圍遍歷所有行。但在某些情況下Excel里的“使用范圍”可能比你真實數(shù)據(jù)范圍更大比如有人刪除過數(shù)據(jù)但沒保存干凈導(dǎo)致max_row比實際行數(shù)多很多。這種時候最好自己設(shè)定min_row和max_row別全依賴默認值。等價的還有ws.rows和ws.valuesrows ws.rows # 生成器每個item是一行的Cell對象元組 values ws.values # 生成器每個item是一行的值元組注意ws.values在普通模式下會一次性把整個工作表的值迭代完適合小表。對大表流式配合iter_rows更安全下面會專門講。還有一個實用組合先把整個表變成值列表再處理。data list(ws.values)這個寫法很直觀但只推薦用在數(shù)據(jù)量不大、內(nèi)存隨便吃的情況下。一個幾萬行的表轉(zhuǎn)成list通常沒多大問題但如果你確定文件有幾十萬行就別這么寫很容易把內(nèi)存撐爆。3.3 區(qū)域切片讀取與合并單元格的連帶處理除了正向遍歷openpyxl支持像Excel公式一樣按區(qū)域切片region ws[A1:C3] print(region) # ((A1, B1, C1), (A2, B2, C2), (A3, B3, C3))返回的是元組套元組每一行是一個元組里面是Cell對象。這種寫法適合讀取表頭區(qū)域或者某個固定報表區(qū)塊。真正麻煩的是合并單元格。openpyxl讀取合并單元格時只有左上角那個單元格有值其他區(qū)域返回的是None。比如A1:B2合并后B1、A2、B2的值都是None只保留A1有值。這在讀報表時是非常容易踩的坑。要識別合并區(qū)域可以這樣for merge_range in list(ws.merged_cells.ranges): print(merge_range.min_row, merge_range.min_col, merge_range.max_row, merge_range.max_col)老版本的openpyxl直接遍歷ws.merged_cells也能得到類似信息新版統(tǒng)一推薦使用merged_cells.ranges。如果你的表格里有合并單元格而且你需要每個單元格都有值可以自己做一個“填充合并區(qū)域”的小函數(shù)def fill_merged(ws): for mr in list(ws.merged_cells.ranges): top_left ws.cell(rowmr.min_row, columnmr.min_col).value for r in range(mr.min_row, mr.max_row 1): for c in range(mr.min_col, mr.max_col 1): ws.cell(rowr, columnc).value top_left這樣處理后原來為None的單元格會被填上左上角的值。注意如果你后面還要保存這個工作簿這個函數(shù)其實改變了單元格格式它會破壞合并單元格結(jié)構(gòu)。所以我一般不是真的去改原表而是把值讀到一個新的數(shù)據(jù)結(jié)構(gòu)里比如所有行都變成統(tǒng)一的dict列表再繼續(xù)做匯總。4. 真實數(shù)據(jù)讀取中的三個經(jīng)典坑與應(yīng)對姿勢4.1 data_onlyTrue卻取不到公式結(jié)果這是我接到求助最多的問題之一。有位同學(xué)用openpyxl讀一個帶公式的報表load_workbook時特意加了data_onlyTrue結(jié)果某些單元格讀出來還是None他一度懷疑是openpyxl的bug。其實openpyxl本身不會計算公式。當Excel在保存xlsx文件時會把每個公式最近一次計算的結(jié)果作為緩存一起存進去。data_onlyTrue只是告訴openpyxl“你去讀那個緩存值”而不是“你幫我重新算一遍”。如果這個xlsx是由openpyxl直接創(chuàng)建的里面公式壓根沒被Excel打開計算過那文件里就沒有緩存值data_onlyTrue自然讀到None。解決辦法有幾種讓上游用Excel打開文件并按一次保存把公式結(jié)果緩存刷新到文件里。如果只是臨時用用LibreOffice這類可命令行啟動的辦公軟件在服務(wù)器上重新計算并保存文件。自己寫邏輯兜底先以data_onlyTrue讀取遇到None再用data_onlyFalse打開一次拿到公式字符串再做后續(xù)處理。我常用的兜底思路是這樣def get_cell_value(file_path, cell_ref): wb_value load_workbook(file_path, data_onlyTrue) ws_value wb_value.active val ws_value[cell_ref].value if val is None: wb_formula load_workbook(file_path, data_onlyFalse) ws_formula wb_formula.active val ws_formula[cell_ref].value return val注意這種寫法對單個固定單元格是夠用的如果要遍歷整張表最好一次打開兩個workbook同時維護兩套值按單元格判斷別每次都重復(fù)加載文件。4.2 合并單元格帶來的空值前面已經(jīng)提過合并單元格會導(dǎo)致其他區(qū)域變成None但在真實數(shù)據(jù)分析里這個問題經(jīng)常結(jié)合遍歷出現(xiàn)你的數(shù)據(jù)明明看起來完整打印出來卻全是None。比如有些報表把“部門”列按多行合并只保留第一行的值后面的行都是空。如果你直接用openpyxl讀取不做處理后面這些空值就會被當成缺失數(shù)據(jù)。遇到這種情況我的處理思路是先用區(qū)間識別合并區(qū)域再按上一行的值向下填充。也就是把合并單元格的左上角值“往下傳”。下面是一個處理豎排列合并的示例for mr in list(ws.merged_cells.ranges): if mr.min_col mr.max_col: # 同列上下合并 fill_value ws.cell(rowmr.min_row, columnmr.min_col).value for r in range(mr.min_row 1, mr.max_row 1): ws.cell(rowr, columnmr.min_col).value fill_value這種處理很適合“部門列合并了但明細行需要顯示部門名”的場景。做完之后再按行遍歷數(shù)據(jù)就是完整的。還有一個隱藏問題是合并單元格如果出現(xiàn)在表頭區(qū)域可能會導(dǎo)致表頭字段名讀取不上來。比如第一行和第二行合并過但你用iter_rows默認遍歷第二行的表頭字段就是None。遇到這個建議只讀取合并區(qū)域左上角那一行作為表頭或者先把表頭區(qū)域按前面fill_merged方法鋪平。4.3 數(shù)字、日期與百分比的類型識別openpyxl讀取單元格時會自動映射數(shù)據(jù)類型但有些映射結(jié)果跟Excel里“看到的內(nèi)容”不一樣這也是很多人讀出來之后發(fā)現(xiàn)對不上的原因。日期時間類型在工作表里會被讀成datetime對象from datetime import datetime cell_val ws[B2].value if isinstance(cell_val, datetime): print(cell_val.strftime(%Y-%m-%d))如果單元格存的是數(shù)字openpyxl默認會保留數(shù)字類型不會給你轉(zhuǎn)成字符串。但有一種情況要注意Excel里如果單元格是“文本”格式里面的數(shù)字會被存成字符串“123”而不是數(shù)字123。讀出來之后做加法時就會報錯。我一般在拿數(shù)字之前都做一層防御def to_float(value): if value is None: return None if isinstance(value, (int, float)): return float(value) if isinstance(value, str): text value.replace(,, ).replace(, ).strip() try: return float(text) except ValueError: return None return None百分比的坑更深。Excel里顯示“12.5%”的單元格openpyxl讀出來的value其實是0.125不是字符串“12.5%”。如果你直接格式化輸出會變成“0.125”跟原表對不上。要用單元格的number_format來判斷value ws[C3].value fmt ws[C3].number_format # 類似 0.0% if % in str(fmt) and isinstance(value, (int, float)): display_value value * 100同樣的道理還適用于千分位、貨幣符號等格式openpyxl讀取的是原始存儲值不是Excel的顯示值。如果你要復(fù)現(xiàn)“用戶看到的數(shù)字”必須結(jié)合number_format做二次加工。5. 大文件與異常環(huán)境性能優(yōu)化和安全防護5.1 read_only模式只讀模式到底省了多少內(nèi)存普通模式加載工作簿時openpyxl會把整個文件內(nèi)容解析成內(nèi)存里的對象逐行、逐單元格都創(chuàng)建Cell對象。文件小的時候無所謂一旦遇到幾萬行幾十列甚至更大規(guī)模的表普通模式能讓你的腳本內(nèi)存占用直線上漲。解決辦法是load_workbook時打開read_only模式wb load_workbook(大文件.xlsx, read_onlyTrue) ws wb.active for row in ws.iter_rows(values_onlyTrue): # 處理這一行 passread_only模式采用的是流式讀取思路不會一次性把整張表都加載到內(nèi)存里而是一行一行從底層XML文件里解析出來。配合values_onlyTrue一起使用性能表現(xiàn)會更好因為values_onlyTrue直接返回值不會去創(chuàng)建完整的Cell對象。但只讀模式也有明顯的代價。首先你不能再像普通模式那樣方便地按坐標隨機讀取某個單元格最穩(wěn)妥的方式就是從頭到尾遍歷行其次一些高級操作比如修改后保存、處理合并單元格、調(diào)整樣式都是不可用的第三讀取過程中對工作表的約束邏輯比普通模式松不適合做需要精確解析格式的場景。我自己的選擇標準很簡單文件行數(shù)在幾千行以內(nèi)普通模式隨便用超過幾萬行或者明確知道文件很大毫不猶豫開read_only模式。還有一點read_only模式下千萬不要因為圖方便就寫data list(ws.values)這會把流式讀取的好處全丟掉等于又把整表加載進了內(nèi)存。5.2 防御式代碼文件不存在、權(quán)限異常與空表我是越來越認同一個觀點腳本的報錯信息要能說人話。openpyxl如果遇到非法文件拋出來的異常一般比較底層比如BadZipFile新手看到會懵。所以正式腳本里我會包一層異常處理from pathlib import Path from zipfile import BadZipFile from openpyxl import load_workbook from openpyxl.exceptions import InvalidFileException def load_workbook_safe(file_path): path Path(file_path) if not path.exists(): raise FileNotFoundError(f文件不存在: {path.resolve()}) try: wb load_workbook(path, read_onlyTrue, data_onlyTrue) except BadZipFile: raise ValueError(文件不是有效的xlsx格式可能被損壞或不是xlsx文件) except InvalidFileException: raise ValueError(openpyxl無法識別該文件請確認擴展名為.xlsx/.xlsm) except PermissionError: raise PermissionError(文件權(quán)限異常請檢查是否被占用或沒有讀取權(quán)限) if len(wb.sheetnames) 0: raise ValueError(工作簿里沒有任何工作表) return wb這段代碼里有一個容易被忽略的點報錯信息要盡量明確。我在實際工作中就遇到過一個文件被另一個進程占用導(dǎo)致讀取權(quán)限異常的情況如果不去捕獲PermissionError默認報錯看著就像文件壞掉一樣排查方向完全跑偏。除了文件層面的異??毡硪惨龇烙?。有些自動化流程會生成內(nèi)容為空的xlsx但工作表還在read_only模式遍歷時可能連表頭都取不到。這種場景我一般會在循環(huán)外先加判斷if ws.max_row 2: print(這個工作表只有一行或沒有數(shù)據(jù)跳過) continue還有一個安全細節(jié)openpyxl不支持加密保護的xlsx。如果你拿到一個帶打開密碼的文件load_workbook直接會報錯。這個不是openpyxl的bug是它版本里就沒有實現(xiàn)加密文件的解析。遇到加密文件需要讓上游先解密或者用支持密碼的工具另存一份再處理。6. 實戰(zhàn)把12個月度報表合并成一個結(jié)構(gòu)化結(jié)果6.1 需求與數(shù)據(jù)樣張結(jié)合上面的知識點我來還原一個真實的讀取工作簿小任務(wù)。某數(shù)據(jù)小組每個月會收到一份銷售周報工作簿名是“年度銷售周報.xlsx”里面有12張工作表分別叫“第1周”“第2周”一直到“第12周”。每張表的行數(shù)可能不一樣列也不完全對齊但至少都有“城市”“銷售額”“日期”這三個字段。任務(wù)是把所有周報的數(shù)據(jù)讀出來按城市匯總銷售額輸出一個摘要字典。先模擬一下數(shù)據(jù)結(jié)構(gòu)。工作表“第1周”大致長這樣城市銷售額日期A市12800.52025-03-01B市96322025-03-01C市104202025-03-01A市87002025-03-02另一張“第2周”可能城市列不在A列日期列也可能有“2025/03/08”這種格式。這種“表結(jié)構(gòu)不固定”才是真實世界最常見的Excel問題。6.2 核心實現(xiàn)代碼下面這個腳本就是把前面的知識串起來用表名導(dǎo)航、用iter_rows遍歷、按表頭映射列索引、對空行跳過、對字符串數(shù)字做轉(zhuǎn)換。from openpyxl import load_workbook from collections import defaultdict from datetime import datetime def parse_weekly_file(file_path): wb load_workbook(file_path, data_onlyTrue, read_onlyFalse) summary defaultdict(lambda: {amount: 0.0, count: 0}) for sheet_name in wb.sheetnames: ws wb[sheet_name] rows ws.iter_rows(values_onlyTrue) try: header next(rows) except StopIteration: print(f跳過空表: {sheet_name}) continue header_map {} for idx, name in enumerate(header): if name is not None: header_map[str(name).strip().lower()] idx if 城市 not in header_map or 銷售額 not in header_map: print(f跳過 {sheet_name}: 缺少必要列實際列名 {list(header_map.keys())}) continue city_idx header_map[城市] amount_idx header_map[銷售額] date_idx header_map.get(日期) for row in rows: if all(item is None for item in row): continue city str(row[city_idx]).strip() if row[city_idx] is not None else 未填寫 amount_raw row[amount_idx] amount to_float(amount_raw) if amount is None: continue summary[city][amount] amount summary[city][count] 1 if date_idx is not None: date_value row[date_idx] if isinstance(date_value, datetime): pass return summary def to_float(value): if value is None: return None if isinstance(value, (int, float)): return float(value) if isinstance(value, str): text value.replace(,, ).replace(, ).strip() try: return float(text) except ValueError: return None return None if __name__ __main__: result parse_weekly_file(年度銷售周報.xlsx) for city, info in result.items(): print(city, info)這里我特意沒有引入pandas因為如果你只需要讀完數(shù)據(jù)并匯總用openpyxl加基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)就夠了依賴少、部署簡單。代碼里header_map的作用很關(guān)鍵它會把每一列的表頭轉(zhuǎn)成小寫再映射索引這樣不同周報表頭順序不一致時也能自動定位到正確的列。再補充一個細節(jié)data_onlyTrue這里是為了讀取銷售額的緩存值。如果銷售額列本身是手工填的數(shù)字不帶公式用data_onlyFalse其實也能得到正確結(jié)果。但為了保險我依然寫了data_onlyTrue因為一旦某些行的銷售額是公式算出來的不加的話你會讀到一個公式字符串后面轉(zhuǎn)float就會報錯。6.3 運行結(jié)果與小坑回顧跑完腳本后輸出大概是這樣A市 {amount: 158320.0, count: 12} B市 {amount: 147500.0, count: 11} C市 {amount: 129800.0, count: 10}看上去很順利但這個腳本在調(diào)試過程中踩過兩個小坑。第一個坑是某周報表的城市列里出現(xiàn)了合并單元格A市下面的幾行城市字段為None直接被腳本歸類成了“未填寫”。這個問題我用前面說的合并區(qū)域識別思路解決先判斷merged_cells.ranges把合并后的空值按左上角值填充再做后續(xù)處理。如果你遇到類似情況記得在進入iter_rows之前先做一次合并值鋪平操作。第二個坑是某張表里銷售額列有些單元格被存成了文本里面帶了千分位逗號比如“12,800.5”。直接用float會報錯我在to_float函數(shù)里做了replace(,, )這才把數(shù)據(jù)救回來。別覺得這種數(shù)據(jù)規(guī)范問題少見真實業(yè)務(wù)里各種手填表格什么格式都有。最后分享一個我的習(xí)慣寫讀取腳本時先在主邏輯后面加一段“表結(jié)構(gòu)概覽”輸出打印每張工作表的表名、max_row和字段順序。這樣即使腳本后面跑出奇怪結(jié)果第一反應(yīng)是去看數(shù)據(jù)本身而不是懷疑讀取邏輯。很多bug其實就是源數(shù)據(jù)的結(jié)構(gòu)跟你預(yù)想的不一樣先摸清底細再動手解析能省下一大半排查時間。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国产精品麻豆视频网站| 欧美国产日韩高清在线| 久久久不卡| 精品97精品97| 91精品综合久久久久久五月丁香| 亚洲密乳AV| 亲子敌伦对白在线播放| 婷婷丁香激情| 久久九九97| 91老熟女老女人国产老太| 婷婷六月天| 太久视频| 亚洲激情综合另类男同| 亚洲一区二区AV| 99热导航| 一区二区三区成人| 日韩欧美被操黄免费观看| 日日夜夜干| 日韩在线观看字幕精品| 91美女丝袜诱惑视频| 久久九九国产精品| 在免费jIzzjIzz在线视频| 国产h小视频在线观看免费| 超碰天天去日穴| 97免费视频在线观看视频| 欧美综合色站| 久久综合精品一区二区三区| 人妻夜夜爽天天爽麻豆三区网站 | 欧美呦呦性爱| 亚州免费啪啪视频| 操高情无码| 制度丝袜99| 国产成人 综合亚洲 天堂| 伊人操| 97伊人| 成人青青草原伊人| 日韩综合成人免费视频| 日本视频一区二区三区| 国产区91柔拿会所技师| 操逼操网| 96AV精品| 狠狠色五月亚洲91| 九九碰九九爱97超碰| 久久久久九九九九| 9丨亚洲一区二区在线| CCYY草草影院地址入口| 成人av影院在线观看| www.99中文字幕| 久草网站免费在线观看| 色色婷| 五月开心网| 五月丁香色综合| 思思热在线观看| 九九九九九九九九九九九免费国产| 亚州国产精品乱| 天综合网| 97超碰中文字幕| 99999国产| 九九综合九九综合| 欧美精品xxxwww| 欧美性爱www免费版| 精品亚洲黄色片 国产精品导航一区二区| 老熟女搡BBBB搡BBBB视频| 无码乱人伦中文视频| 亚洲一区二区麻豆影院| 91电影色诱| 成人久久久精品| 日韩欧美蜜桃精品久久中文字幕久久| 热久久国产| 婷婷五月av| 天天肏美女| 国产精品不卡一区二区三区| 美女诱惑一区| 免费综合亚洲中文| 欧美熟妇亚洲版| 91av熟女人妻| 欧美日韩操逼动图| 久久色一区二区| 91制服丝袜| 免费a v| 欧美激情性爱视频网站| 激情五月丁香五月| 国产91丝袜 在线播放| 巨爆乳一区二区爆乳区| 毛片视频白嫩| 日韩在线76| 伊人综合色网| 97天天综合网| 综合久久欧美| 中文字幕av色| 青青久草| 综合久久六月久久婷婷| ss久久| 中日韩久久久免费看| 亚洲第一页第二页激情| 激情婷婷| 性一级黄色录像片网站导航| 成人午夜视频免费播放| 久操视频这里只有精品| 丁香六月激情综合| 超碰综合97在线| 热久久国产| 草b在线| 超碰超碰超碰超碰的大鸡吧操黑丝袜 | 精吧天堂| 在线精品福利免费播放| 91色伦综合| 亚洲 欧美 精品专区 极品| 亚洲欧美日韩精品久| 伊人一区二区三区| 嫩草一区二区在线观看| 久久啊啊啊视频| 黄视频免费| 男人的天堂网免费| 日本精品999| baisiav| 男人的天堂网页| 一本一道人妻久久一区二区三区| 欧美亚洲首页| 97WW精品| 日B操| 国产蜜臀精品一区免费尤物| 色噜噜狠狠色综无码久久合欧美| ,国产乱人伦精品一区二区三区| 久久风骚城市| 激情色色| 9999久久久| 伊人久久88国产女| 可免费观看的av毛片中日美韩| 99色综合| 亚洲午夜未满十八勿入网站日本又色又爽又黄| 欧美日韩人人精品| 欧美一区二区日韩三区| 一区,二区,三区视频| 日本高清免费一本视频在线观看| 日韩亚洲97| 看一级黄色视频| 亚洲色宗合| 中文字幕在线日亚洲9| 欧美亚洲激情小说| 欧美高清18A片| 亚洲中文字幕妇伦久久| 亚欧高清| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 亚洲精品一卡二卡三卡福利视频网站 | av天堂天堂av日韩| 97久久久久久久久久| 欧美久热| 啪啪啪精品| 动漫av中文| 国产精品免费视频人成| 试看日韩黄片| 国产精品电| 成人在线视频网| 9118禁| 97看操| 精品国产久热在线观看| 精品国产乱码久久| 大白逼三四级| 欧亚乱色熟一区二区三四区| 欧美日本国产日韩激情视频| 色九久| 久久人妻无码毛片A片麻豆| 日韩不卡毛片Av免费高清| 2017天天拍大香蕉| 自拍六区| 中文字幕av丝袜| 99国产人成精品| av网站在线观看了| 91人妻少妇| 久久久久深夜无码| 性生活久久久久久久久久| 女人被添高潮免费视频 | 高凊专区人人操| 国产精品久久久久亚洲av| 东京热毛片177b2viP| 超碰97在线色男人??| 亚洲欲色9532548967一区| 欧美性爱免费短视频| 天天影视91看看| 91麻豆天美传媒HD| 欧美淫穴| 伊人久久88国产女| 日韩啪啪网| 青青操综合网| 大香蕉乱级| 精品对白久久不卡| 中出91视频| 好看的91视频| 日韩78m视频| 美女超碰978| 色香色欲天天综合网天天来吧| 日韩欧美日韩| 国产免费内射视频| 美女t无毒不卡不卡| 精品免费国产二区三区 | 人人操人人精品影片| 精品久久久久久久久久久久| 亚洲AV免费在线观看| 91九色首页| 亚洲一区二区三区欧美日韩| 啪啪免费| 日韩一级欧美一级在线观看| 经典丝袜一区| 人妻在线臀日韩| 欧美亚洲激情小说| 人人摸人人干| AV99热18这里只有精品| 亚洲熟久久| 美女诱惑在线一区| 天天综合网~91综合网| 日本天天干天天搞一区| 精品国产99| 亚洲欧洲综合视频在线| 97精品综合久久| 91精品黄在线观看| renqi久久久久久久久久久久| 亚洲综合精品国产一区| 中文字幕成人| 婷婷三区| 国产吹潮女在线观看| 天天躁夜夜躁狠狠躁AV| 9久9久| 热热色青青草| 亚洲熟女av中文字幕| 大香蕉综合网| 性色av大全| 操一操摸一摸| 色哟哟511老熟女| 桃花色涩综合影院| 91老熟女逼| 日本不卡二三区| 一区二区三区成人 | 国产亚洲精品美女久久久m| 国产女人与拘做受视频免费| 97最新在线播放视频| 99亚亚热| 久草综合视频| 国产在线激情| 综合国产影视三级| 狠狠色婷婷7777久| 亚洲AO在线| 日韩亚洲97| 丰满人妻一区二区三区免费 | 夜夜操夜夜爽夜夜高潮| 九九热精品视频六| 国产精品久久久久中文字幕| 99在线精品视频| 国产久久日韩网站导航| 老熟女天天操| 国产精品久久久久久无码红治院| 九九久久九九久久| 亚洲熟女少妇免费视频| 强奸乱伦 亚洲一区| 青青伊人这里只有精品| 激激五月| 竹菊一区二区三区AV线| 欧美黄色片在线播放| 国产一级αv免费看片| 美日韩一卡二卡三卡免费人妻精品| 欧美日韩天堂| 综合亚洲欧美精品日韩?v| 日韩黄色一区二区三区| 黄久在线| 国产综合操逼高清| 超碰久久草| 极品销魂美女一区二区| 婷婷激情四射| 亚州精品人妻一二三区| 亚洲色色探花| 亚洲999综合| 97色伦97色伦国产欧美| 97久久精品亚洲| 97久久综合网| 国产精品久久久久久 百度| 亚洲精品色| 欧美高清第一页| 少妇滛荡视频| 久久久一区二区三区麻豆| 操逼www.| 亚洲老司机123专区| 小说区 图片区色 综合区| 中文字幕一区日韩精| 亚洲高清少妇| 久久这里是精品| 99RE在线视频精品,这里只有精品| 亚洲欧美色图片| 婷婷五月av| 久9综合在线| 久久一区二区三区入口| 国语精品av| 一级啊性爱在线视频| 任我爽在线视频免费观看| www.99中文字幕| 欧美熟女丝袜| 免费黄色片。| 国产欧洲精品亚洲午夜拍精品| 韩国手机不卡无码三级视频| 色网综合网| 亚洲综合中文字幕有码| 玖色av| 欧美十八禁在线看| 超碰91在线| 国产欧美伊人| 狠狠操官网| 伦理弟一页| 日韩精品免费高清视频在线| 日本免费一区二区不卡| 香蕉综合网| 无码78| 人妻精品4K4K4K4K4| 极品综合| 人妻色情天天操| 色播五月丁香| 激情黄色片在线观看| 日韩视频小说在线观看| 天天流夜夜操| 午夜视频好爽啊| 久久久久96| 亚洲nv男人的天堂网| 91综合色噜噜| 久久精品视频一区三区小泽玛利亚| 午夜影美女日鸡鸡天天视频国产| 玖玖久久久| 熟女一区二区| 亚洲激情在线一区二区| 无码高清操逼| 女人天堂网| 成人影 天天操 亚洲| 成人一级性爱| 91色花堂| 天美一区在线| 女同在线视频一区| 亚洲一本大道中文字幕无码在线| 性天堂| 国产人妻精品一区二区三区秋霞| 亚洲天堂,男人| 亚洲精品国产熟女| 97在线看| 中国和日本人色哪个不下载能放| 操美女人妻| 九九色热| 婷婷五月天av| 中文字幕亚洲热播人妻| 日本性感人妻91| 亚洲资源吧| 亚洲自拍另类丝袜综合| 五月丁香久久| 桃花色涩综合影院| 日韩欧美国产一区二区三区四区| 天天色图| 粉嫩av在线| 91久热| 成人久久精品| 91jk色拍| 亚洲码和欧洲精品激情系列| 东北女人av| 欧美做爰无码A片视频| 成全在线观看免费观看| 人妻天天爽天天爽三区| 亚洲骚逼少妇| 九九九九九九综合| 成人情色综合网| 97超碰这里只有精品| 伊人色综合超碰| 中文字幕高清20页视频| 婷婷六月天| 伊人五月天| 日本性爱少妇| 91在线精品| 国产大学生口爆吞精合集| 亚洲精品成人动漫在线| 国产亚洲性生活视频播放| 欧美亚洲91| 九九热三级片| 97精品免费视频网站| 伊人国产AV| 亚洲丝袜二区在线| 欧美乱欲| 日韩欧美性吧婷婷乱伦大香蕉| 综合亚洲欧美| 91视频精品| 亚洲色婷婷久久91| 91人妻精华帖| 一级特级aaaa毛片免费观看| 免費黃色視頻觀看一| 97国产高清视频在线观看| 国产中文精品一区二区在线观看| 最新中文字幕精品在线| 久久精品色欧美aⅴ一区二区| 欧美大香蕉专区网| 欧洲天天在线| 国产精品久久久久久久久久久久久久久久久久 | 五月婷婷综合网| 六六久久日韩不卡| 欧美综合色站| 91丝袜美腿片| 色臀AV| 婷婷色色五月天福利| 三级日本一区二区三区| 尤物黄色在线观看网站| 一级A片女人高潮叫床| 久99视频| 中文字幕在线观看AV| 亚洲视频,小说| 国产精品久久久999| 天美麻豆黄色录像| 国产精品午夜AV完会免费 | 91丝袜在线视频| 亚洲天堂少妇| 国产精品无码成人精品| 国产精品一区午夜福利| 91色久| 男人的天堂成人的社区| 97在线观看视频| 欧美精品三级黄片| 欧美网站免费| 熟女一区二区| 久久久久久久久9| 性无码专区2020| 成人免费在线网站| 麻豆性爱视频在线播放| 精品一区二区三区18| 久久伊人最新网址视频| 欧美日韩国产色图在线| 800zy一区二区| 欧美精品,四区。五区| 亚洲人成在线放东京热| 色久桃花影院在线观看| 吻戏激情性巴克| 免费网站观看www在线观| 色原狠狠天天天| 日本操逼视频不卡直接放| 九九热AV| 91精品免费| 肏逼视频日本| 亚洲精品 大香蕉| 一本大道久| 日韩操p| 欧美午夜精品久久久久久3D| 人妻精品一区一区三区蜜桃91| 综合网天天| av天堂5| 久久国99999| 伊人91| 性爱av在线免费观看| 久久最新视频免费观看| 天美传媒AV在线播放| wwwcaobibi| 国产精品久久久九九九| 嫩草美女久久| 91在线视频免费中出| 男人天堂2030| 美日韩成人| 精品无码产区一区二| 成人小说视频在线精品欧美| 综合久欧洲| 国产成人久久精品蜜臀| 91色情黑丝搞鸡在线观看一区二区三区三州 | 亚洲色婷婷综合久久一区二区三区| 日本十八禁免费看污网站| 国产有码一区| 色呦呦国产精品免费看| 射丝袜高跟鞋99| 污色区网站| 性色avv| 男人天堂网站| 欧美一二在线| 又大又长又粗又爽又黄| 人妻丝袜肏逼| 国产三区免费在线观看| 成人精品水蜜桃久久久久久久| 成人一级性爱| 亚洲天堂资源| 95人妻爽爽人人做人人澡| 蜜臀99久久国产| 99色视频| 91老女人| 热久久国产精品视频大陆精品| 极品欧美一区二区三区| 大香蕉啪啪啪啪在线| 最新岛国大片| 凹凸 69堂 在线播放| 亚洲成人综合在线| 天天综合~91| 高跟伊人julia ann| 日韩欧美aⅴ综合网站发布| 久久精品人妻一区二区| 五月丁香色情| 久久国产AⅤ| 国产第11页| 亚洲最大无码中文字幕网站| 777超碰| 日本999精品视频| 亚洲日韩国产欧美综合v| 四虎影视欧美| 一区二区 电影 亚洲| 久久精品国产亚洲AV嘿嘿| 色偷偷2020免费视频播放| 天天欧美欧美亚洲网| 手机午夜电影神马久久| 自拍亚洲综合| 亚洲AV无码天美传媒一区| 久久久久久久伊人精品| 欧美激情精品久久久久久| 99精品丰满人妻无| 亚洲 国产 精品一区| 九久9精品| 最新中文字幕av| 翔田千里av一区二区三区| 天天看天天日天天操| 五月天加勒比啪| 91麻豆天美国产欧美| 黄色av网站在线播放| 嗯嗯不要 视频| 又摸又舔在线观看网站| 激情六月婷婷| 色色福利| 51久久夜色精品国产麻豆| 色97欧美| 国产精品乱码久久久久久| 天天日老熟妇| 女人被添高潮免费视频| 久久一区二区高清免费| 人人摸人人入| 亚州黄站| 久久视频,这里只有精品 | 老熟女网站| 97视频在线视频| 黑丝91视频| 丁香五月偷拍| 国产CHASE男男GAYGA 毛多色婷婷| 91综合色噜噜| 特色a在线上| 亚洲久久天堂| 亚洲丝袜制服国产91_国语字幕免费观看完整版下载第5集_ | 99操逼| 久久毛卡| 国产精品熟女九色九色蜜臀| 欧美人与动性人交a| 亚洲资源站| 97亚洲综合在线| 乱色老一区二区三区的观看方式| 成人热久久精品| 蜜奶av| 久久发布国产伦子伦精品| 久热这里| 五月丁香激情啪啪| 久久丁香五月天| 无码少妇精品一区二区60岁老人| 国产福利在线视频网站| 中国一级操逼视频| 国产欧美精选激情视频| 日本精品网站在线中文| 成人无码电影在线观看网| 国产午夜在线观看| 国产一级舔足在线观看| 亚洲欧美日韩制服另类| 少妇高潮流水av免费| 日本成人免费一区二区三区| 成人无码在线视频网站| 国产最新小视频在线播放下载| 91看黄片| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 欧美亚洲韩国视频十五区| wuyechaopeng| 超碰吊日色| 97AV在线观看| 欧美日韩国产一区二区小黄片大全| 天天看夜夜看日日干| 日韩激情无码影院| 国产探花精品在线| 亚欧国产无码精品在线| 亚洲一区二区麻豆影院| 亚洲国产一级中文综合久久天堂在线免费观看 | 人人摸人人干| 屁股久久久久久久久| 性生活性生大爱77AV国产| 亚洲 日本 不卡| 七月丁香婷婷| 大香蕉www.超碰| 性做久久久久久免费观看软件| 日本一级黄色电影| 亚洲综合888| 精品国产久久乱码| 2017天天拍大香蕉| 中国一级特黄大片护士| 日韩性爱网址| 不卡码视频| 人人摸人人舔一区二区| 久久久久久九九九| 欧美性爱中文字幕无线码| 操美女高潮抽搐白浆| 97久久久久久久精| 超碰97在线中文| 午夜毛片亚洲精品片国产久久久| 18啪啪手机免费性爱| 国产成人自拍视频在线| 亚洲AO在线| 淫纸中9区| 亚洲 欧美 精品专区 极品| 欧美少妇性爱网站| 国产精品熟女AV中文字幕在线播放| 国产地址二三| 91综合中文字幕| 国产精品欧美日韩久久| 操穴国产| 亚洲毛片久久| 中文一区在线视频| 狠插 制服 自拍| 欧美色综合网| 免费在线观看国内色片网站网址| 五月天黄色av| 久久精品无码专区| 国产激情在线| 伊人 俄罗斯 a v| 中国一级αV| 婷婷综合在线| 欧美日韩97在线| 国产精品网址| 午夜精品久久久99| 国产高清成人免费视频| 九九碰九九爱97超碰| 亚洲伊人久久精品影院| 婷婷av在线中文字幕| 色婷婷激情| 九草九九九| 亚洲一区二区三区中文字幕| 中日韩久久人妻一区二区| 诱惑网综合| 99精品久久| 另类老少妇| 久久精品国产96精品亚洲拳交| 精品小视频在线| 精品国产三级av韩国在线| 男人的天堂不卡一区二区| 伊人欧美大香蕉视频| 欧美黄片欧美黄片xxx| 久久日本熟女精品一区| 少妇一级婬片免费放一级a性色.| 97一区二区蜜臀| 91精品国产91久久青草| 欧美三级一级| 亚洲电影中字一区二区| 成人老鸭窝人人在线视频| 黄色免费网| 亚洲色性情三级| 亚洲激情综合另类男同| 国产十八禁视频| 99re公开精品免费视频| 欧美性综合| 高清无码 国产精品| 天天影视之亚洲综合网| 另类专区在线观看| 久久东京热久久| 青青青操| 亚洲三区视频| 一二三卡欧美日韩人妻免费精品| 91精品大奶人妻| 国产精品夜夜| 伊人97色天使| 91精品国产日韩欧美综合| 成人久久久精品| 1024人妻熟女一区二区三区| 国产精品一级毛片不卡视| 欧美福利视频啊啊啊啊| 日本 欧美 亚中文字幕| 91精品人| 日本人妻天堂网站在线播放| 色乱二区| 蜜臀久久99精品久久久久久酒店 | 中国熟女网站| 亚洲成av人片色午夜乱码| 精品久久97| 精品久久久av| 国产毛片久久久久久久| 人妖欧美一区二区| 男人的天堂2018东京热啪啪啪| 色综合一本| 欲色啪| 蜜臀久久99精品久久久老,,| 午夜福利1区2区3区| 天天情欲宗合网| 九九伊人网| 91搞逼视频| 激情婷婷黑人91| 免费看污网站| 国产精品无码AV网站| 91精品老女人| 啊啊啊啊啊啊啊啊啊在线观看| 久热大香蕉| 久热在线精品免费观看| 国内外激情在线| 另类亚洲图色| 午夜大香蕉| 操操吧亚洲乱伦视频| 91精品国产91久久久久久久久久久久| 99999无码| 日本三级R| 无码一区免费在线不卡| 热热色青青草| 国产美女激情| 116美女午夜| 无码自拍SM| 久久国产免费激情视频| 国产精品美女| 国产搭汕a级片| 加勒比海成人视频网 | 9色国产精品一区粉嫩 | 天天日老熟妇| 色人久久| 日韩性爱电影一区| 男人天堂黄片| 国产在线能看的你懂的| 亚洲性高潮| 久草成人影片| 日韩色女精品| 性色av一区二区| 天天干天天操天天拍| 色婷婷基地| 久草福利在线资源站| 色色网91| 欧美真人抽搐一进一出gif| 天天做天天爱| 日韩有码中文字幕女同性恋| 日本黄色天堂| 久久精品电影| 熟女高潮合集-永久久久-成人AV | 黄色片A级一区二区三区| 91美女视频在线观看| 日本不卡一二区| 久久久久久久久久久久色网| 97超碰国产亚洲精品| 日韩不卡一二三四| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 亚洲国产精品无石码久久| 欧美自拍网| 无码粉嫩白虎一线天b区| 亚洲好色人妻| 免费视频观看60秒| 男女啊啊啊| 91国模| 热99这里有精品综合久久| 亚洲情色视频| 国产精品爆乳懂色蜜乳| 18禁在线视频| 91碰超| 成人aⅴ一区二区三区| 综合免费无码中文| 美女被艹尤物视频| 久久大香蕉| 国产精品女同| 十八禁黄色成人网站观看| 国产成人主播| 久久久久久无码人妻中文字幕| 超碰97综合网| 淫荡网址| 91亚洲色人| 五月综合婷婷久久网站| 日本天天色| 丰满少妇一区二区三区专区| 久久九七| 91热色| AV中亚| 老司机天天操| 亚洲免费人妻在| 理论久久婷婷网 8| 国产乱人妻精品入口| 人妻大香蕉| 少妇久久久| 午夜一区二区三区国产| 成人午夜无码视频| 殴美日韩m| 久久精品高清无码一区| 91亚洲图片| 91精品久久久| 啪啪啪综合网| 天天看特黄的免费网站| 亚洲图片视频小说| 豆花视频操逼网址 | 中文子幕一二三| 欧美第二页| 51一区二区三区| 熟女人妻久久中文字幕一二区| 国产精品午夜成人福利| 欧美日韩人妻精品一区二区三区 | 亚洲人在线| 激情文学亚洲| 国产精品久久久久久亚洲色欲| 午夜爽爽爽在线观看永久入口姬片| 色丁香五月婷婷| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 成人夜夜| 91av一区二区在线观看| 屌色在线97视频| 久湿久久 | 亚洲日韩一区电影| 超碰97亚洲区| 视频一区二区三区精品| 丁香五月天啪啪| 青青草玖玖爱| 一级婬片120分钟试看| 九九碰九九爱97超碰| 夜夜骑天天燥| 国产偷人伦激情在线观看| 无码自拍SM| Aa东京男人的天堂| 1级午夜影院费免区| 国产欧美日韩在线观看麻豆传媒公司| 色拍偷亚洲| 97资源视频| 婷婷伊人一区| 色婷婷一区二区三区久久| 白嫩国模丰满一二三区| 美日韩在线不卡人妻| 九九综合九九综合| 日韩人妻精品久久久久| 婷婷10月天青娱乐| 韩国三级理论在线| 操死我了啊啊啊| 欧美一区二区三区入口| 国产传媒一区日韩| 亚洲av综合伊人久久| 男人的天堂,欧美亚洲另类国产日韩,日本高清一区二区 | 99久久99九九99九九九| 曰韩av中文字幕专区| 色亚州人久干视频在线观看免费版| 蜜乳AV免费观看| 不卡超碰护士AV在线免费播放| 男人综合网| 丁香五月激情综合| 久草资源在线| 深夜啪啪啪视频免费| 日本不卡一二区| 日韩人妻精品久久久久| 美女啊啊啊啊啊啊| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 国产精品久久久777| 一本色道综合久久欧美| 97看操| 两性色网| 91模特在线观看| 丁香五月婷婷啪啪| 日本综合色图| 91偷拍欧美亚洲| 精品高清一区二区三区三州| 亚洲性少妇| 欧美精品久久久久久久久88| 91狠狠狠| 91国产精品熟女| 1000部熟女视频在线观看| 久久男人网| 国产一级操B视频| 久久精品噜噜噜成人看免欧美大片| 久久九九综合| 亚洲天天综合| 亚洲第91页 | 五月天久久人妻| 男人亚洲91首页在线| 极品销魂美女一区二区| 伊人伊人LD| 久热大香蕉| 午夜小电影在线插入淫高潮| 欧美综合制服在线| 欧美黄片视频在线观看免费| 密臀视频三区免费网站| 97色诱| 偷窥自拍A片| 欧美狠狠干| 91少妇香蕉久久精品| 国产一级αv免费看片| 97在线视频免费观看| 少妇人妻无码| 欧美一级色| 中国AV美女| 精品少妇高潮久久| 一区 欧美 日韩 麻豆| 亚洲福利中文字幕在线| a片自拍直播视频| 欧美天天在线| 欧美色图天堂网m| 色婷婷五月综合激情中文字幕| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 亚洲双插| 麻豆成人av| 日韩免费人妻色情网站| 日韩色欲久久一二三四区| 久久久久99999| 国产精品乱码久久久久久久| 国产极品999| www色色com| 亚洲成人性| 97视频在线| 午夜噜噜噜| 青草视频人妻在线观看| 精品久久久中文字幕不| 一区二区三区机械有限公司| 老熟女搡BBBB搡BBBB视频| 97综合激情| 超碰久久综合| 久久香蕉超碰97国产精品| 综合色图区| 天天插天天操| 久干9操| 国产亚洲精品久久久久小| 亚洲天天在线| 久操国产在线| 99精品无码| 99久在线精品99re8热视频在线| 午夜呻吟欧美| 91在线页| 六月婷婷激情| 91九九| 十八禁啪啦拍视频无遮挡| 尤物网址| 黄片qw| 成人小说另类在线| 男人的天堂网页| 亚洲欧美另类图片| 香港久久久| 99热线麻豆| 热久久无毒不卡| 久久精品电影| 久久骚| 久欲AV| 操死我了啊啊啊| 久久大精品乱码视频人妻熟女| 久久亚州高清| 一区二区 电影 亚洲| 欧美性色综合网| 精品久久久久黄少妇| 久久久久9久久久久| 精品.99999| 中文字幕在线观看AV| 国产精品九9| 玖玖爱综合| 精品国产72| 中文字幕超碰CAO| 国产一区二区三区,在线观看观看| 综合色拍| 96精品一区| 色色97爱| 精品免费一区| 超碰精品国产无码| 被男人添B超爽视频| 又大又长又粗又爽又黄| 一区二区影院| 婷婷五月天av| 色妹子A V| 日韩在线人妻网站| 日韩少妇在线视频| 我想要啊 啊 啊| 国产路线专区| 蜜乳AV免费观看| 26uuu性物| 日本一级性爱| 性站| 日韩激情视频| 亚欧操逼片在线观看| 欧美激情高清性猛交| 欧美91精品国产自产| 亚洲啪AⅤ永久无码| 亚洲av无线观看| 五月天婷婷基地| 伊人大香蕉在线| 激情四射五月天| 麻豆天美在线| 亚洲无码国产探花在线观看| 久操凹凸视频| www.色婷婷| 精品亚洲俞拍视频一区| 亚洲乱熟女一区二区| 日日骚中文字幕| 超碰国产精品久| 长长久久免费视频| 伊人网在线观看| 91大香蕉伊人| 日日操免费视频| 大香蕉乱伦视频网| 国产a级精品| 97视频一区| se吧提供91精品国产91久久久久久| 377p欧洲日本亚洲大胆| 亚洲欧美精品一区天堂久久| 北条麻妃性愛视频| 少妇淫妇久久久久久久| 精品成人亚洲午夜电影| 亚洲天堂电影精品一区| 91 综合 色| 精品国产一区探花在线观看| 亚州操逼网| 国产女同性恋视频| 人妻少妇精品视频一区二区三区| 激情抓乳插进去啪啪啪日韩| 日本特黄f c2| 另类老少妇| A 在线网址| 人人喜人人妻| 殴美色网| 欧美三级中文字幕hd| 成年男人的天堂| 国产精品农村妇女| 久久三| 麻豆伊人网| 欧美综合网| 一区二区 韩日AV| 超碰欧美97资源| 久久久久久亚洲中文| 国产黄a三级三级三级av在线看| 女上位精品在线| 涩涩涩综合| 伊人久久国产免费观看视频| 日本不卡一二区| 免费毛片在线播放| 色眯眯av| 国产Aα| 99蜜桃臀亚洲成人在线观看| 久久产精品一区二区三区电影| 亚洲色五月| 久久精品国产97欧美精品亚洲 | 久久久久久中文版| 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 超碰人人妻| 欧美综色欧| 激情久久av一区av二区av| 熟妇高潮精品一区二区三区下载| 人妻9117c| 日韩中文字幕熟妇人妻| 欧洲久久一二线| 超碰97欧美在线| 国产剧情在线| 鲁鲁色综合网| 丁香色狠狠色综合久久小说| 欧美日韩性感| 精品午夜福利导航| 青青草日逼视频| 91综合色噜噜| 97人人爱人人做人人乐| 另类图片欧美激情综合| 欧美一区二区在线资源| 激情小说图片亚洲首页| 国产60区。| 新久久AV| 亚洲诱惑天堂| 日本欧美国内在线| 日本在线999| 性爱久久| 精品一级毛片在线观看| 欧美性爱一内片一区二区三区| 亚洲无线观看久久| 欧美操逼视频二区| 操逼逼中文字幕| 欧美日韩系列| 很很干很很操| 欧美色www亚洲国产阿娇要播| 日本不卡码黄色| 亚洲第一免费视频| 久久人妻一区二区三区高清| 欧美做爰无码A片视频| 2017天天插| 亚洲人在线成线成人| 国产av强奸美女| 伊人网在线点播| 久久国产精品91| 久久久久亚洲AV无码专区少妇| 亚洲高清男人天堂| 狠狠干综合| 日韩免费福利在线观看| 中文久久96| 东京热免费视频| av网站免费线看| 大屁股熟女一区二区三区| 91人妻PORNY九色大屁股| 熟女探花啪啪| 青青青草伊人精品| 精品国产一区二区三区av在线资源| 翔田千里无码一区| 97伦乱| 精品人妻1237| 美国aaaaa一级黄片| 国产精品网址| 九九国产热| 夜夜爽77777| 亚洲欧美在线观看免费| 啊啊啊久久| 久久九操在线观看| 偷拍欧美综合| 操逼操网| 日本视频在线中文字幕| 亚洲熟女少妇免费视频| 99啪啪视频| 六月丁香久久| 日本免费中文字幕在线| 久久久久久久97| 伊人四虎综合| 99re95| 欧美激情五月天| 欧美人妻精品一区二区| 一级毛片电影免费看| 青青久久久| 熟妇精品juliaannAV| 又黄又爽在线观看视频| 日韩欧美国产一区二区三区四区| 亚洲国产精品成人久久蜜臀| 国产精品色约约| 午夜福利区| 欧美久久草熟女| 一区二区娱乐网站| 精品偷拍13p欧美dodk视频| 日日爱99| 一二三区视频在线观看| 成人欧美日超碰| 性欧美体内射精| 91婷婷伊人狠人| 五月丁香网站| 久久久久国产一区二| 91碰超| 欧美日韩另类在线| 小说区 图片区色 综合区| 亚洲无码一区成人免费午夜| 97欧美色综合| 国产一区二区三区,在线观看观看| 精品免费1| 91麻豆天美国产欧美| 九九色影院| 欧美亚洲日本激情在线| 久草网站免费在线观看| 强奸国产精品视频| 尤物av网站免费在线播放| 少妇熟女一区二区三区| 97精品全部| 蜜臀中文无码午夜| 热热色青青草| 欧美96交| 日韩AV噜噜噜一区二区三区四区| 性九九九九九九| 99re在线视频| 尤物视频网 刘玥| 综合激情一一91| 四虎免费视频| 加勒比性爱成人在线| 台湾佬中文娱乐网久久久久久久久久com| 亚洲自拍一区夜夜操| 午夜精品久久久久久久99热影院| 亚洲综合另类欧美久久久| 青青操97| 人妻一区久久二区三区色播| 中文字幕av久久爽Av| 狠狠操一区二区| 欧美国产一区二区三区麻豆传媒 | 国产精品一二三区福利| 性感美女啊啊啊在线| 超碰碰小说97| 后入综合久久| 超碰在线免费一区二区三区| 猛猛干| 日韩性爱小视频| 青青免费在线视频一区| 高清成年美女黄网站免费大全| 日韩性爱免费视频在线网站|