99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

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

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

Python openpyxl讀取Excel工作簿:從入門到實(shí)戰(zhàn) 前陣子同事甩給我一堆周報讓我用openpyxl讀取工作簿里的銷售數(shù)據(jù)再按城市匯個總。他以為這活兒至少得折騰一下午結(jié)果我花十分鐘寫了個腳本吃頓飯的功夫就跑完了。如果你也經(jīng)常被Excel表格折磨或者想把手動復(fù)制粘貼的活兒自動化openpyxl這個庫值得認(rèn)真了解。它不是什么冷門工具而是Python生態(tài)里處理xlsx文件的主力庫讀取工作簿、讀取單元格、批量遍歷、處理合并單元格一套流程下來基本不會卡殼。這篇文章我就圍繞讀取工作簿展開把加載文件、定位工作表、讀單元格、踩過的坑、大文件優(yōu)化這些內(nèi)容一次講透連著代碼和注釋一并給到你可以直接拿去改。1. 為什么處理Excel我選openpyxl這個庫1.1 對比pandas、xlrd、xlwingsopenpyxl贏在哪遇到Excel處理很多人的第一反應(yīng)是pandas但我不建議一上來就開pandas。pandas的read_excel確實(shí)方便一行代碼能把工作表讀成DataFrame可它是個重型庫底層還要依賴其他解析器而且一旦涉及合并單元格、公式緩存、樣式保留、列格式識別這些細(xì)節(jié)pandas的可控性反而不好。尤其是當(dāng)你只是想“打開工作簿、按行讀取、按條件過濾”的時候pandas屬于殺雞用牛刀還會讓腳本體積變大、啟動變慢。xlrd這個庫曾經(jīng)是讀取xlsx的主流選擇但新版xlrd已經(jīng)轉(zhuǎn)向只支持xls老格式xlsx的讀取被移除所以新項(xiàng)目再用它處理xlsx很容易踩版本坑。xlwings則是另一種思路它本質(zhì)上是調(diào)用本機(jī)安裝的Excel程序來操作文件功能強(qiáng)大但依賴GUI環(huán)境在服務(wù)器或者沒裝Office的機(jī)器上根本跑不起來自動化場景里非常受限。openpyxl的優(yōu)勢在于純Python實(shí)現(xiàn)不依賴Excel組件能讀能寫能處理樣式、公式、圖表、合并單元格、批注等細(xì)節(jié)而且對xlsx這種基于XML的壓縮格式解析得很穩(wěn)定。對“讀取工作簿”這種需求來說它是最穩(wěn)妥的選擇。我做文件數(shù)據(jù)處理的時候十次里有八次會選openpyxl收尾剩下兩次是因?yàn)閷Ψ浇o的是xls老文件才考慮先用工具轉(zhuǎn)個格式。1.2 安裝與版本別小看環(huán)境準(zhǔn)備這步安裝很簡單直接pip搞定pip install openpyxl如果你在公司內(nèi)網(wǎng)環(huán)境可能需要換到內(nèi)部鏡像源這個按你們自己的網(wǎng)絡(luò)設(shè)置來。裝完之后可以在Python里確認(rèn)一下版本python -c import openpyxl; print(openpyxl.__version__)建議用3.1以上版本早期的2.x版本雖然也能用但某些API表現(xiàn)不一樣比如合并單元格范圍的處理方式就改過。順便提一句openpyxl只認(rèn)xlsx、xlsm這類基于Office Open XML格式的文件老版xls它是打不開的報錯也不是很友好。你要是收到的是.xls要么讓上游重新導(dǎo)出為.xlsx要么先用其他工具轉(zhuǎn)一下再跑腳本。2. 讀取工作簿的基本盤load_workbook與工作表導(dǎo)航2.1 load_workbook的完整參數(shù)認(rèn)知讀取工作簿的入口是load_workbook我第一次用的時候只傳了個文件名后來才發(fā)現(xiàn)這函數(shù)的參數(shù)里藏著不少坑from openpyxl import load_workbook wb load_workbook(某銷售匯總.xlsx)默認(rèn)情況下這個調(diào)用會把整個xlsx解析進(jìn)內(nèi)存所有工作表、所有單元格對象都會被創(chuàng)建。如果文件不大感覺不到差異等你哪天拿到一個幾十MB的大表格就會明白普通模式到底有多吃內(nèi)存。load_workbook還有幾個關(guān)鍵參數(shù)read_only設(shè)置為True會進(jìn)入只讀流式模式一行一行從文件里讀數(shù)據(jù)內(nèi)存占用大幅下降代價是部分高級操作不可用。后面我會專門展開講。data_only這個參數(shù)特別容易誤解它不是“只讀取數(shù)據(jù)”的意思而是“是否只讀取公式的緩存結(jié)果”。默認(rèn)False拿到的是公式字符串比如“SUM(A1:A3)”設(shè)為True拿到的才是Excel計算后保存下來的數(shù)值。如果公式從沒被Excel真正計算過data_onlyTrue反而會返回None。keep_vba處理xlsm宏文件時使用如果你只想讀數(shù)據(jù)保持默認(rèn)False就行。keep_links控制是否保留外部鏈接信息默認(rèn)True。如果你的工作表里引用了別的工作簿加載時會嘗試解析這些鏈接某些文件會導(dǎo)致加載變慢純粹讀內(nèi)容的話可以設(shè)成False。除了傳文件路徑load_workbook也可以接收一個二進(jìn)制流對象比如從內(nèi)存里讀from io import BytesIO from openpyxl import load_workbook data bytes_io.getvalue() wb load_workbook(BytesIO(data))這個技巧在做接口對接、文件上傳處理的時候很實(shí)用不用把臨時文件寫到磁盤上再讀。2.2 從工作簿到工作表再到單元格三步定位數(shù)據(jù)拿到工作簿對象之后第一件事不是急著讀單元格而是先摸清楚里面有幾張表、每張表叫什么。print(wb.sheetnames) # 全部工作表名稱列表 ws wb.active # 默認(rèn)激活的工作表很多人習(xí)慣直接用wb.active但我要提醒一句active不一定永遠(yuǎn)是第一個工作表它表示的是“上次打開時激活的那張表”有時候文件處理邏輯變了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坐標(biāo)寫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. 讀取單元格的幾種實(shí)用姿勢索引、切片與批量遍歷3.1 用字母坐標(biāo)還是行列索引讀取單個單元格最直觀的方式就是字母坐標(biāo)。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)不一致的場景里非常管用。有時候你還需要在字母坐標(biāo)和數(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讀取工作簿的高頻場景其實(shí)是“整張表讀出來”這時候一個單元格一個單元格取太慢了用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ù)時它會按工作表的實(shí)際使用范圍遍歷所有行。但在某些情況下Excel里的“使用范圍”可能比你真實(shí)數(shù)據(jù)范圍更大比如有人刪除過數(shù)據(jù)但沒保存干凈導(dǎo)致max_row比實(shí)際行數(shù)多很多。這種時候最好自己設(shè)定min_row和max_row別全依賴默認(rèn)值。等價的還有ws.rows和ws.valuesrows ws.rows # 生成器每個item是一行的Cell對象元組 values ws.values # 生成器每個item是一行的值元組注意ws.values在普通模式下會一次性把整個工作表的值迭代完適合小表。對大表流式配合iter_rows更安全下面會專門講。還有一個實(shí)用組合先把整個表變成值列表再處理。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ù)其實(shí)改變了單元格格式它會破壞合并單元格結(jié)構(gòu)。所以我一般不是真的去改原表而是把值讀到一個新的數(shù)據(jù)結(jié)構(gòu)里比如所有行都變成統(tǒng)一的dict列表再繼續(xù)做匯總。4. 真實(shí)數(shù)據(jù)讀取中的三個經(jīng)典坑與應(yīng)對姿勢4.1 data_onlyTrue卻取不到公式結(jié)果這是我接到求助最多的問題之一。有位同學(xué)用openpyxl讀一個帶公式的報表load_workbook時特意加了data_onlyTrue結(jié)果某些單元格讀出來還是None他一度懷疑是openpyxl的bug。其實(shí)openpyxl本身不會計算公式。當(dāng)Excel在保存xlsx文件時會把每個公式最近一次計算的結(jié)果作為緩存一起存進(jìn)去。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同時維護(hù)兩套值按單元格判斷別每次都重復(fù)加載文件。4.2 合并單元格帶來的空值前面已經(jīng)提過合并單元格會導(dǎo)致其他區(qū)域變成None但在真實(shí)數(shù)據(jù)分析里這個問題經(jīng)常結(jié)合遍歷出現(xiàn)你的數(shù)據(jù)明明看起來完整打印出來卻全是None。比如有些報表把“部門”列按多行合并只保留第一行的值后面的行都是空。如果你直接用openpyxl讀取不做處理后面這些空值就會被當(dāng)成缺失數(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這種處理很適合“部門列合并了但明細(xì)行需要顯示部門名”的場景。做完之后再按行遍歷數(shù)據(jù)就是完整的。還有一個隱藏問題是合并單元格如果出現(xiàn)在表頭區(qū)域可能會導(dǎo)致表頭字段名讀取不上來。比如第一行和第二行合并過但你用iter_rows默認(rèn)遍歷第二行的表頭字段就是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默認(rèn)會保留數(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其實(shí)是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)化和安全防護(hù)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)會更好因?yàn)関alues_onlyTrue直接返回值不會去創(chuàng)建完整的Cell對象。但只讀模式也有明顯的代價。首先你不能再像普通模式那樣方便地按坐標(biāo)隨機(jī)讀取某個單元格最穩(wěn)妥的方式就是從頭到尾遍歷行其次一些高級操作比如修改后保存、處理合并單元格、調(diào)整樣式都是不可用的第三讀取過程中對工作表的約束邏輯比普通模式松不適合做需要精確解析格式的場景。我自己的選擇標(biāo)準(zhǔn)很簡單文件行數(shù)在幾千行以內(nèi)普通模式隨便用超過幾萬行或者明確知道文件很大毫不猶豫開read_only模式。還有一點(diǎn)read_only模式下千萬不要因?yàn)閳D方便就寫data list(ws.values)這會把流式讀取的好處全丟掉等于又把整表加載進(jìn)了內(nèi)存。5.2 防御式代碼文件不存在、權(quán)限異常與空表我是越來越認(rèn)同一個觀點(diǎ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無法識別該文件請確認(rèn)擴(kuò)展名為.xlsx/.xlsm) except PermissionError: raise PermissionError(文件權(quán)限異常請檢查是否被占用或沒有讀取權(quán)限) if len(wb.sheetnames) 0: raise ValueError(工作簿里沒有任何工作表) return wb這段代碼里有一個容易被忽略的點(diǎn)報錯信息要盡量明確。我在實(shí)際工作中就遇到過一個文件被另一個進(jìn)程占用導(dǎo)致讀取權(quán)限異常的情況如果不去捕獲PermissionError默認(rèn)報錯看著就像文件壞掉一樣排查方向完全跑偏。除了文件層面的異??毡硪惨龇烙?。有些自動化流程會生成內(nèi)容為空的xlsx但工作表還在read_only模式遍歷時可能連表頭都取不到。這種場景我一般會在循環(huán)外先加判斷if ws.max_row 2: print(這個工作表只有一行或沒有數(shù)據(jù)跳過) continue還有一個安全細(xì)節(jié)openpyxl不支持加密保護(hù)的xlsx。如果你拿到一個帶打開密碼的文件load_workbook直接會報錯。這個不是openpyxl的bug是它版本里就沒有實(shí)現(xiàn)加密文件的解析。遇到加密文件需要讓上游先解密或者用支持密碼的工具另存一份再處理。6. 實(shí)戰(zhàn)把12個月度報表合并成一個結(jié)構(gòu)化結(jié)果6.1 需求與數(shù)據(jù)樣張結(jié)合上面的知識點(diǎn)我來還原一個真實(shí)的讀取工作簿小任務(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)不固定”才是真實(shí)世界最常見的Excel問題。6.2 核心實(shí)現(xiàn)代碼下面這個腳本就是把前面的知識串起來用表名導(dǎo)航、用iter_rows遍歷、按表頭映射列索引、對空行跳過、對字符串?dāng)?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}: 缺少必要列實(shí)際列名 {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因?yàn)槿绻阒恍枰x完數(shù)據(jù)并匯總用openpyxl加基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)就夠了依賴少、部署簡單。代碼里header_map的作用很關(guān)鍵它會把每一列的表頭轉(zhuǎn)成小寫再映射索引這樣不同周報表頭順序不一致時也能自動定位到正確的列。再補(bǔ)充一個細(xì)節(jié)data_onlyTrue這里是為了讀取銷售額的緩存值。如果銷售額列本身是手工填的數(shù)字不帶公式用data_onlyFalse其實(shí)也能得到正確結(jié)果。但為了保險我依然寫了data_onlyTrue因?yàn)橐坏┠承┬械匿N售額是公式算出來的不加的話你會讀到一個公式字符串后面轉(zhuǎn)float就會報錯。6.3 運(yùn)行結(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ù)處理。如果你遇到類似情況記得在進(jìn)入iter_rows之前先做一次合并值鋪平操作。第二個坑是某張表里銷售額列有些單元格被存成了文本里面帶了千分位逗號比如“12,800.5”。直接用float會報錯我在to_float函數(shù)里做了replace(,, )這才把數(shù)據(jù)救回來。別覺得這種數(shù)據(jù)規(guī)范問題少見真實(shí)業(yè)務(wù)里各種手填表格什么格式都有。最后分享一個我的習(xí)慣寫讀取腳本時先在主邏輯后面加一段“表結(jié)構(gòu)概覽”輸出打印每張工作表的表名、max_row和字段順序。這樣即使腳本后面跑出奇怪結(jié)果第一反應(yīng)是去看數(shù)據(jù)本身而不是懷疑讀取邏輯。很多bug其實(shí)就是源數(shù)據(jù)的結(jié)構(gòu)跟你預(yù)想的不一樣先摸清底細(xì)再動手解析能省下一大半排查時間。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
五月WWW| jiujiu无码五区| 婷婷五月天国产| 九色视频91| 综合色色五月| 99热伊人| www.97碰碰com| 婷婷五月天亚洲天堂| 狠狠干在线| 国产精品人成A片一区二区| 丁香色婷婷五月天| 九九综合久久| 婷婷五月天电影在线| 91偷拍视频| 91操人人操| 99视频在线精品免费观看2| 日韩av网址大全| 国产综合视频婷婷| 激情亚洲婷婷| 日本不卡中文字幕| 91碰| 久久久久久激情| 最新婷婷五月丁香| 丁香五月熟女| 久草婷妨| 青青草Avb在线| 黑人糟蹋人妻HD中文字幕| 五月丁香亭亭| 这里只有精品免费视频| 色五狠狠| 亚洲色视频| 色播丁香婷婷五月激情| 99亚洲无码| 婷婷在线操| 人人操97| 色五月婷婷狠狠撸| 亚洲AV激情五月综合网| 69五月天视频| 乱轮A片| VA国产在线综合网站| 国产成人+综合亚洲+天堂| 色色色五月| 精品一区二区三区免费毛片爱 | 9久热| 热996精品在线观看| 乱乱av| 六月色色| 狠狠操狠狠色| 丁香久久九九99| 成人在线免费网址| 久久天堂网| 五月丁香婷婷成人版| 丁香六月成人网| 91久女| 亚洲最大成人综合网720P| 欧美交换配乱吟粗大25P| 国产成人av在线| 大香蕉精品视频| 婷色五月天| 99热这里只有精品3| 99国产性感视频| 色五XX| 久久综合激情婷婷激情| 久草五月婷婷| www色婷婷com| 91九色无码内射| 黄色91在线观看| 97碰在线免费观看| 四色综合网| 丁香婷婷激情综合五月激情 | 丁香五月婷婷激情97| 99丁香五月| 丁香五月玖玖| 日本久热| 99精彩视频在线观看| 天天摸天天爽| www激情| 狼人婷婷久久| 少妇2做爰HD韩国电影| 国产全是老熟女太爽了| 亚洲 欧洲 国产 伦综合| 五月激情射| 五月婷婷六月天| 日韩999| 蜜臀av无码久久久久久久久| 国产成人99久久亚洲综合精品| 色婷婷AV在线| 天堂伊人干| 99情色五月天| 无码se| 久色五月婷婷综合| 五月色影院| 五月综合色| 婷婷在线五月综合| 久久狠狠欧美| 日本狠狠干| 婷婷五月天丁香花| 狠狠色噜噜狠狠亚洲A∨| 婷婷综合精品| 五月天影院| 五月丁香成人网| 天天干天干| 9久热精品在线视频| 九九热99久久99| 亚洲AV成人在线| 在线色五月婷婷| 综合在线色婷婷| 99热在线精品观看| 91pornav在线| 性生活久久人妻| 日韩高清成人| 高清 码 免费看片短视频| 久久五月丁香伊人青草| 五月婷婷99热| 9超碰在线| 天天搞夜夜叫| 丁香久久久| 久久久天堂国产精品女人| 六月色婷婷综合影视| 99re思思| 啪啪六月婷婷| 综合久久丁香婷婷,五月婷婷六月丁香,开心激情综合网,六月丁香在线观看,婷婷丁 | 精品九九视频| 久久狠狠干| 亚州成人综合在线| 色亚洲色宗合| 五月激情啪啪| 色色五月婷婷| 五月婷婷综合久久| 免费操超碰| 亚洲99激情| 日亚二欧美| 久久5 9视频免费观看| 六月色播| WWW.17C亚洲精品| 色婷婷小说网| 五月丁香婷婷五月色| 色五月婷婷丁香国产在线| 五月婷婷性爱| 涩涩涩,com| 亚洲精品国产成人AV在线| 91久久九九| 婷婷五月欧美| 九九亚洲综合| 亚洲天堂久久| 嫩草AV久久伊人妇女超级A| 国产99久久久| 五月丁香色综合| 久久99婷婷| 久久在线大香蕉| 1234操逼网| 色爱亚洲| PORNY九色9l自拍视频成人| 99热这里只有精品8| 精品久9| 色五月婷婷丁香婷婷| 国产高潮A片羞羞视频涩涩| 五月天伊人av| 亚洲成人av中文| 色五月丁香六月婷婷| 七月婷婷色香综合网| 五月天婷婷自拍图片在线观看| 综合五月婷婷| 九九亚洲小视频| 黑人巨粗进入警花疼哭A片| 婷婷六月丁香在线| 99久操视频| 久久久久久丁香五月| 97大香蕉五月天| 五月天电影网| 国产精品日日躁夜夜躁| 日本人妻A片成人免费看片| 99免费热在线精品| 五月丁香亭亭激情操逼网| 久久久人人人妻丝丝丝| 97操| 久久五月综合| 天天激情欧美美女| 思思久ren热| AV成人在线网站| 久久婷婷五月综合啪| 九九综合88| 五月天色综合| 日韩五月天婷婷| 丁香五月天久久| 99精品免费欧美小视频| 日本在线观看aaa 99| 中文字幕婷婷五月天在线观看| 婷婷久久亚洲| 久青草大香蕉| 五月婷婷激情综合| 亚洲婷婷欧美婷婷| 伊人婷婷激情| 久久99激情| 色五月婷婷基地| 狠狠色狠狠鲁| 亚洲视频五区| 久久天堂色| 91无码视频| 亚洲色色图片| 99欧州偷拍视频| 婷婷伊人綜合中文字幕| 碰97久久| 婷婷五月天BBw| 欧美日本黄色| 国产AV不卡福利| 天天做天天爱| 99啪啪| 99性爱无码| 久久婷婷丁香五月宗合| 伊人香大香蕉视频| 精品人妻伦九区久久AAA片| 青草五月天| 九九成人高清视频| 96丁香六月婷婷蜜桃综合久久| 大香焦啪啪啪| 亚洲无AV在线中文字幕| 亚洲综合九九| 久久女人天堂| 婷婷色片| 婷五月天| 久久人妻www| 欧美精品久久久久久视频观看| 午夜激情久久| 99视频热99| 这里有精品| 色婷婷丁香五月| 综合色色婷婷| 5月丁香六月情| 色玖玖| 2015WWW永久免费观看播放| 91狠狠色丁香婷婷综合久久精品| 五月激情综合网| 丁香美女五月天婷婷| 色欲五月婷婷| 国产成人+亚洲+欧洲| 狠狠色婷婷丁香六月| 婷婷久月| 婷婷丁香成人| 99re热精品在线视频| 狠狠色丁香婷婷五月| 日逼AV影音先锋男人资源站| 91精品久久久久久久久久| 中文字幕 码精品视频网站| 日本色五月| 天天爽天天摸| 日日噜狠狠色综合久| 久热这里只有精品视频6| 欧洲永久精品| 6080av| 激情的五月| 丁香六月AV| 婷婷香香五月| 99热这里只有精品10| 婷婷五月激情热播| 热99视频| 色五月婷婷激情| 五月丁香婷婷激情澎湃四射| 激情五月狠狠| 黄色AAAAA| 99视频网| 五月婷婷六月激情| 激情啪啪五月天| 免费观看全黄做爰的视频| 国产成人+综合亚洲+天堂| 丁香婷婷社区| 无码任你操| 六月婷婷综合激情| 99人妻碰碰碰久久久久禁片| 中文字幕在线免费观看视频| 婷婷丁香色五月| 色99色| 色五月五月婷婷| 婷婷啪啪| 久久99热网| 另类少妇人与禽zOZZ0性伦| 丁香五月婷婷啪啪| 国产内射婷婷| 琪琪色热色色| 五月婷婷色色| 五月丁香六月情婷婷久久| 狠狠人妻久久久久久综合丁香| 精品久久婷婷五月天| 爱草视频在线观看| 吉澤明步Av一區二區| 99视频热| 久草视频一,二三四| 黄色五月婷婷| 午夜九九九九九九九九九九九九九| 操人久久| 久机视频这只有精品| 99热这里是精品| 久久怡红院| 丁香五月天成人| 久婷自拍视频| 六月丁香五月婷婷首页| 99爱在线视频观看| 另类激情五月| 婷婷激情五月天7| 五月婷婷久久爱| 久草热视频在线观看| 五月激情六月综合| 五月婷婷综合在线| 碰久久精品w| 久久婷婷五月综合精品蜜芽| 五月丁香婷中文| 五月婷婷中文字幕| 五月丁香啪啪网| 国产偷人爽久久久久久老妇APP| 懂色av粉嫩AV蜜臀AV| 97五月天婷婷综合激情网| 99re在线视频精品,这里只有精品18,| 九九综合久久| 久久思思热| 九九综合影音先锋| 99热99色| 日韩精品二三区| 99激情视频| 丁香婷婷六月| 六月婷婷狠狠| 亚洲成人免费在线| 大香蕉伊在| 色播五月丁香综合| 色婷婷视频在线| 久久九九激情五月天| 久久五月网| 综合五月亭亭9| 91久久综合亚洲鲁鲁五月天| 婷婷五月日本| 26uuu国产精品| 欧美性爱一区| 欧美日韩中国| 激情五月狠狠| 中文字幕一色哟哟哟哟| 亚洲色视频| 影音先锋91在线资源站| 免费九九热| 色五月 五月婷婷| 99热国产在线| ji'qing'luan'ren'lun| 99综合在线| 色婷婷狠狠久久YY| 激情婷婷人妻| 欧美色婷婷| 狼友超碰| 婷婷五月天综合网| 综合久久综合五月天婷婷| 亚洲综合视频天天精品| 天天操比比| 91精品国产日韩91久久久久久国模| 色狠狠综合网| 777影视理论片大全在线观看| 久久精品99久久久久久| 色婷婷A| 欧美综合五月天婷婷tin| 淫视馆aV二区一区| 亚洲色啪| 天天综合情| 丁香五月丁香伊人| 九九热9| www.狠狠干| 亚洲另类电影| 十月丁香婷婷| 无码少妇高潮喷水A片免费| 99视频这里只有免费精品| 国产.亚洲.欧洲视频在线| 九九色网| 99视频| 人操人人| 午夜激情综合| 色婷婷视频| 亚洲99在线| 俺去也在线视频| 久久97久久99久久综合欧美| 四色99久久| 婷婷丁香色女人| 深爱1激情网| 99只有精品9| 色了色综合| 成人精品免费在线观看| 直接看的AV| 激情五月婷婷色色| 狠狠狠色激情综合适合| 五月天婷婷av| 99视频精品| 五月天五月色婷婷综合| 少妇性按摩无码中文A片| 99爱免费在线观看| 亚洲精品又粗又大又爽A片| 久久五月丁香激情综合| www99xxxx五月丁| 91人碰| 激情婷婷在线中文字幕| www99热| 天天在线久久综合| 狠狠干在线| 日韩成人AV在线播放| 97色婷婷五月天| 色噜噜综合网| 久久这里只有欧美| 亚洲色情久久| 丁香婷婷浪潮AV久久综合| 99久久6| 九九色大香蕉| 色色操| 99久久综合| 99九九在线精品热动漫| 任你躁XXXXX麻豆精品| 五月婷婷欲色| 狠狠综合久久| 亚洲小说欧美激情| 五月丁香成人| 91狠狠色丁香婷婷综合久久狠丁香综合久久精品 | 婷婷综合性爱网| 色偷偷色婷婷| 色婷婷欧美在线| 五月天大香焦| 色狠狠色| 色婷婷精品视频| 广东99色在线| 六月丁香婷婷综合狠狠爱夜夜爱| 亚洲精品无AMM毛片| 九九热只有精品| 丁香五月欧美成人| 五月停亭久久电影| 激情人妻蜜夜系列区| 五月婷婷丁香六月| 男女久久婷婷五月天| 色色五月天婷婷丁香| 国产看真人毛片爱做A片| 综合色色色| 丁香五月综合色婷婷| 狠狠色婷| 亚洲无AV在线中文字幕| 五月婷婷在线视频| 9l视频自拍9l九色9l成人| 夜夜骑日日夜夜| 狠狠色丁香婷婷久久综合| 国产真实乱对白精彩| 人人97碰| 色无码| 噜噜噜噜在线| 久久婷婷五月国产激情综合片| 成人在线网站| ou洲色吧| 丁香五月天日韩无码| 丁香五月激情五月| 五月丁香婷婷在线| 99视频在线看| 色欲色欲久久宗合网| 婷婷综合五月| 99日本在线| 91午夜激情| 天天日天天日天天搞| 99这里只有精品视频免费| 人人草碰| 婷婷狠狠干| 午夜天堂一区人妻| 操一区| 97九色| 激情综合五月婷婷| 久操福利| 美女激情综合| 91日本在线| 少妇综合网| 日本www五月婷婷| 色五月婷婷激情综合网| 成人噜噜网| 99无码超碰| 国产精品国产| 97久久久| 人妻射精AV| 狠狠色色| 成人色站,在线视频,看片-SS1AV| sewuyuejiqingwang| 九九综合久久丁香婷婷,开心激情综合网| 久久五月激情综合| 九九综合九九| 思思热国产视频| 99惹在线精品免费观看| 狠狠久久婷五月综合色| 久久婷婷操| 激情 婷婷 丁香五月天| 五月天婷婷在线AN| 丁香激情网| 天天色丁香| 天堂中文国产| 狠狠色噜噜狠狠狠狠综合| 丁香六月婷月91婷月| 色五月天激情| 欧美综合激情五月丁香| 狠狠狠狠狠草| 久久九九爽| 开心婷婷五月| 波多婷婷久久| 婷婷操超碰| 深爱婷婷基地| 欧美综合激情五月| 婷婷八月丁香激情综合| 97碰超级人人看| 五月天伊人| 免费无码毛片一区二区A片 | www.99热在线观看| 成人精品视频99在线观看免费| 久久久亚洲精品一区二区三区浴池| 亚洲精品一区无码A片| 久久久久久久11111111111| 97亚洲精品| 欧洲亚洲免费视频9| 婷婷五月天成人五月天| 五月停停丁香| 91超碰人人操| 色色色五月| 99精品热视频| 五月四色婷婷| 欧洲一区二区| 国产女生爱爱AA| 日本三级日本三级三级人妇四虎| 综合色五月天| 激情影院丁香五月| 久久免费高| 欧美三日本三级少妇三99| 开心婷婷五| 97色婷婷五月天| 色五月六月| 色欲色欲久久宗合网| www.99精品视频| site:wpjngj.com| 五月丁香六月婷婷免费视频| 五月丁香大香蕉| 五月天播播综合| 六月婷婷网站| 色婷婷五月在线| 77777亚洲午夜久久| 美女天天久久| 亚洲熟妇无码乱子AV电影| 天天爽人人综合免费7799| 国产婷婷久久| 提提热五月天婷婷| 99精品热| 99久操| 开心五月色婷婷综合开心网| 成人丁香五月| 久草免费福利视频| 影音先锋激情网| 日韩久久视频| 丁香五月www| 色国产五月| 99热官网精品在线| 九色激情| 五月丁香久久呀| 色色色色色色色色网站| 亚洲九九99精品视频在线播放| 五月丁香六月久久| 久婷| 色狠狠999综合| 久久怕怕视频| 在线免费观看激情视频| 99只有这里是精品| 国产69久久久欧美黑人A片| 91欧美| 91成人电影| 婷婷五月18永久免费网站| 丁香婷婷在线| 人人人操 超碰| 欧美天堂久久| 五月丁香婷婷色| 天天插天天射天天干| 五月天成人小说网| 无码动漫AV| 亚洲最大五月天成人网| 五月婷婷丁香日韩在线| 美女激情婷婷| 婷婷综合在线网| 亚洲精品V天堂中文字幕| 国产99久久久| 综合激情视频| 亚洲激情视频网| 亚洲天堂久久| 五月婷成人网| 婷婷五月天97干| 五月丁香欧美综合免费视频| 黄色中文字目| 亚洲欧美一区二区三区四区爱爱动图| 激情影院69| 五月丁香综合激情网| 91高潮喷水久久久久久久久| 丁香五月婷婷激情蜜桃| 五月婷婷97| 99色热视频| 夜夜 操无码| 九九精品热| 激情五月综合网| 久久草大香蕉| 五月丁香六月婷婷手机无线| 沈娜娜av| 日本久久高清| 免费成人va| 99热这里都是精品| 色婷婷综合久久久久| 操九色| 六月婷婷综合| 开心五月婷婷在线| 欧美日韩中国| 婷婷五月激情中文字幕| 亚洲综合色丁香婷婷六月| 免看黄大片AA | 五月丁香六月婷婷久久| 大香蕉手机视频| 国产做A爰片毛片A片美国| 就爱射中文字幕资源网| 黄网在线观看免费| 激情婷婷丁香五月| 99性爱视频| 99操逼| 九九XX视频| 久久WW| 丁香五月婷婷少妇| 亚洲中文AV网站| 99久久6| site:publishdd.com| 97人妻碰碰碰久久久久-最近国语高清| 久久久香| 激情五月丁香五月色| 六月婷婷五月天| 影音先锋按摩| 色五月自偷自拍婷婷婷婷| 亚洲操b| 天天舔日日肏夜夜爽| 久久久久久久久久91| 电影91久久久| 99综合久久| 色综合久久88色综合中文字幕| 91色色色18| 成人五月丁香花| 猫咪伊人久久| 久久欧洲综合网| 欧美婷婷| 日韩无码乱轮| 操老逼综合网| 中文字幕日产A片在线看| 伊人激情影院| 精品久久久久久久久久久久人妻| 91欧美日韩综合| 97人妻碰碰碰碰碰久久久久久| 亚洲成人综合在线| 99热日| 激情六月丁香综合| 日本69日人视频| 婷婷五月欧美AA片免费| 无码成人AAAAA毛片AI换脸| 婷婷五月激情综合| 婷婷五月天激情网| 天天爽天天草| 欧美综合激情五月天| 超碰在线91| 超级黄色片| 婷婷情色五月| 丁香五月激情五月| 性做爰A片免费视频A片直播| 婷婷综合五月| 五月婷婷激情综合| 91人人操人人| 棕合影院色色| 91九色国产| 99re热在线视频观看| 婷婷五月色丁香在线看| 人人舔人人色人人高潮| 五月丁香六月婷婷不卡免费无码| 亚洲综人色综网| 99精品自拍| 五月天狠狠色| 丁香婷婷性久久| 思思热精品在线视频| 色综合久久88色综合天天| 欧洲激情五月天| 夜夜天天久久婷婷| 婷婷中文字幕版| 第一区久久网站| 97婷婷丁香五月| 亚洲激情视频网| 久久思思热视频| 久热中文字幕在线线观看| 五月天婷婷导航| 九九热视频免费观看| 五月婷婷 六月丁香| 丁香五月日啪| 深爱激情网婷婷| 五月丁香AV在线| www.狠狠干com| 思思热久久婷婷五月天| 妻久久人久久| 丁香婷婷色九月| 婷婷丁香熟妇综合网| 久久六月天| 五月激情天| 欧洲色| 国产无遮挡又黄又爽免费网站| 91五月花丁香| 色五月婷婷1| 黄色精品五月婷婷| 99这里精品| 欧美综合激情五月| 婷婷五月六月| 深爱综合网| 日本欧美成人片AAAA| 蜜臀综合久草| 婷婷精品在线| www.精品99| 天天日天天日天天搞| 另类 在线| 日狠狠| A短视频免费在线观看| 成人婷婷色综合| 色原狠狠综合| 99ri国产| 激情五月天婷婷久久久久久久久久久| 这里只有精品网站| 激情五月婷| 久99久在线观看| 一本色道久久88综合日韩精品| 99A片| 五月丁香欧美综合| 日韩成人无码| 婷婷综合中文字幕| 久久精品63| 开心五月婷| 影音先锋91| 夜精品无码A片一区二区蜜桃| 婷婷九月丁香天堂丁香天堂| 五月亭亭六月色| 深爱激情69热| 开心五月婷婷| 五月丁香激情综合啪啪| 婷婷五月俺要去| AV在线大香蕉| 九月丁香八月婷婷加勒比| 久久视频婷婷| 大陆肏屄视频| 丁香五月AV| 99色.com| 狠狠色 综合色区| 色五月激情婷婷| 9l视频自拍九色9l黑人| 狠狠色丁香婷婷基地| 综合五月丁香六月婷婷| 草草夜夜操| 99久久精| 日亚二欧美| 大香蕉 婷婷| 广东99色在线| 亚洲AV成人片无码网站| 在线亚洲综合网| 思99热精品久久只有精品| 99热碰碰热| 日韩野外 无套| 五月综合六月丁| 色色a| 色色色在线观看| 色五月激情五月天| 人妻丰满精品一区二区A片| 婷婷99视频精品| 开心五月婷婷| cao视频,现在观看| 激情五月天啪啪| 97久久视频| 激情九月综合| 97热精品| 99干视频| 99婷婷国产最新视频| 久久月天堂| 99国产小视频| 蜜乳av一级av| 婷婷五月天Av| 久久AAAA片一区二区| 婷婷五月天堂网| 欧美色色色色色| 99人人干人人操| 婷婷精品性性性性性性性| 亚洲亚洲人成综合网络| 五月激情丁香五月宗合| 综合激情五月丁香| 久久综合激情五月天| 深爱五月婷婷| 开心 五月 综合| 丰满人妻一区二区三区| AV天堂淫乩| 思思99热| 五月天婷婷久色| 黃色三级三级三级三级 qixing300.shrkbk.com www.jinbozs.com tianmiaosw.com | 超碰在线观看99| 久99综合婷婷| 久久视频婷婷视频| 丁香九月激情| 热这里只有精| AA片在线观看视频在线播放| 一级A片天天操夜夜操| 大香蕉AV电影在线| 精品人妻久久久久久| 成人短视频免费| 五月天激情网图片| 自拍偷窥99热| 亚洲欧美成人在线| 五月色婷婷AV| 性爱五月婷婷| 九九热10| 欧美激情五月综合| 婷婷中文综合网| 思思热视频在线观看| 久9久9热久热| 无码色| 99色热视频| av成人在线播放| 九九aV| 九九热只有精品6| 婷婷丁香五月天激情四射| 久久久久久性爱视频| 99五月婷| 婷婷社区五月天| 五月丁香六月婷婷色| 中文字幕五月久久婷婷| 色五月91| 色五月丁香婷婷综合| 99热99在线精品| 91chinese在线| 国产脫衣舞一区二区三区| 99热免费| 丁香婷婷影院| 99久久黄色顶级视频| 99久99久| 97精品欧美91久久久久久久| 9这里只有精品| 六月丁香婷婷色狠狠久久| 久久这里都是精品| 亚美欧色影院| 噜综合| 色月丁| 99A片| 婷婷色av| 日本色婷婷久久99精品91| 99热人人操人人操| 中文字幕永久在线| 六月丁香五月天| 婷婷99| 天堂网色色| 久热99| 5五月综合网亚洲| 婷婷五月天伦理| 99热色婷婷| 狠狠干综合| 自拍偷窥99热| 婷婷五月天BBw| 欧美婷婷六月丁香综合色连续高潮抽搐| 婷婷久久欧美| 成人片在线播放| 天堂久久精品| 欧美婷婷色五月| 色的色综合| 91精品在线看| 婷婷六月久久| 色综合激情图区| 五月丁香五月综合欧美| 天天情色综合网| 色婷婷久久综合久色| 啪色综合| 色爱综合五月| 国产精品美女久久久久AV超清| 99亚洲日韩| 婷婷五月丁香成人| site:pzdcoin.com| 天天射综合网站| 婷婷久久婷婷| 亚洲九九99精品视频在线播放| 97色婷婷| 婷婷五月天伊人网| 欧美日比视频| 中文字幕成人影视| 色婷婷基地| 婷婷香五月综合激情| WWW、日本色丁香co m| 97人人做| 久久3p| 亚洲国产网站| 久草丁香婷婷五月天婷| 五月婷婷久久爱| 免看黄大片AA | 99原创自拍视频在线观看| 色婷婷六月| 综合色播| 99性爱视频| 日日.c| 六月激情网| 久久婷婷视频| 日韩aaa| 99re热在线视频| 五月丁香综合激情网| 狠狠色狠狠| 日本九九视频| 另类图片色五月| 久久婷婷五月丁香网| 我去色色网五雨天| 五月天综合在线| 丁香九月激情| 丁香六月婷婷| 五月丁香综合| 久久婷综合| 丁香五月激情五月| 丁香五月天堂| 国产免费性爱| 99热8在线| 久婷自拍视频| 伊人婷婷五月天av| 五月天久久www| 天天艹天天综合网| 五月天婷婷一起草| 五月天在线视频尤物视频在线看| 99热777| 色婷婷激情五月天| 五月综合激情| 日韩色色视频| 亚洲超碰青涩| 91操在线| 婷婷丁香五月天婷婷| 色五月无码| 26uuu欧美亚洲日韩| 激情綜合W W W,激情五月天| 日日噜噜夜夜狠狠久久丁香五月| 大香蕉人妻| 久久五月婷| 92久久久| 久草 天堂| 月月AV| 丁香婷婷成人网| 成人视频在线免费播放| 久久激情五月| 婷婷婷狠狠| 亚洲av日韩无码| 成人va在线观看视频| 综合视频五月| 日本三级中文字幕| 激情五月综合| 开心久久网婷婷| 狠狠色综合网| 久久99性爱| 婷婷丁香成人| 成人片黄网站色大片免费毛片| 亚洲色图日韩网址| 色婷婷五月天中文字幕| 99国产这里只有精品| 熟女激情五月天| 五月丁香| 色五月在线综合| 99在线观看视频免费| 色婷婷在线视频综合| 99色婷婷| 五月丁香色欲| 99热啪啪| 五月天综合影院| 丁香五月六月婷婷综合| 婷婷香草网| 夜夜大香蕉婷婷丁香| 26uuu国产精品| 丁香五月综合激情性爱| 五月婷婷视频| 丁香五月天黄色片| 亚洲日日操| 丁香六月欧美| 伊人激情综合| 婷婷五月天国产手机在线视频观看| 六月婷婷在线视频| 三级片AAA久久久AAA久久久AAA | 亚洲av无码精品色午夜| 伊人六月无码视频| www.婷婷,com| 97亚洲精品| 五月丁香综合网色欲| 六九色综合婷婷五月天| 婷婷五月色播天| www.久久| 91黄操| 五月丁香久久激情综合| 亚洲mm色| 欧美色色色色色| 色呦呦美女| 天天爽天天做| 五月综合激情婷婷六月色窝| 久久五月视频| 99热这里只有精品4| 99碰碰。| 婷婷深爱五月天在线| 六月婷婷中文字幕| 91人人澡人人爽人人看| 丁香五月天色婷婷| 久久婷婷五月天丁香| www99热| 综合五月丁香六月婷婷| 久久综合66| 天天影视色综合网| 久久怡红院| 久热这里这里有精品| 免费亚洲婷婷中文字幕| 五月丁香婷婷综合视频| 欧美成人五月天| 婷婷综合国产| 天天操夜夜肏| 丁香五月婷婷啪啪视频| 婷婷狠狠久久| 亚州操操| AV在线免费网站| 久久综合中文字幕| 婷婷网影院| 婷婷综合五月天| 9l视频自拍九色9l视频在线观看| 五月草视频| 99热 在线播放| 五月伊人婷婷| 91婷婷在线观看| 无码色色色| 色v综合网| 丁香九月综合激情| www.久久99| 久久久久9999| 久久婷婷五月草视频在线播放| www五月| 婷婷丁香五月av| 天堂成人A片永久免费网站| 五月丁香婷婷激情在线视频| 日本不卡高字幕在线2019| 日日干夜夜撸夜夜骑| 色婷婷狠狠禁18久久| 丁香五月六月欧美| 懂色av蜜臀av粉嫩av永陈冠希| 五月天播播中文字幕| 色婷| 狠狠色丁香| 亚洲综合色丁香五月天| 97超碰,人人舔,人人操,人人摸 | 色综合久久天天综合网 | 亚洲欧洲中文日韩久久AV乱码| 成人必爱视| 亚洲亚洲人成综合网络| 九九无码视屏| 一区二区传媒视频| 91热爆在线| 熟女激情网| 五月激情婷婷偷拍| 婷婷情爱五月天6| 五月婷婷综合激情| 五月丁香影院| 99性视频| 碰超99| 天天射天天插天天干| 99久久久| 色婷网| av九九| 五月丁香六月在线| 日韩啪啪视频| 偷拍丁香九月激情| 成年人最刺激的综合网| wwW天天干| 亚洲综合视频八| 色5月婷婷| 亚洲激情视频网| WWW免费视频碰碰碰碰| 人人操AV| 五月婷婷综合久久| 久久视频婷婷视频| 超碰人人插| 欧美久久网| 亚洲综合网激情小说| 久激情| 激情五月久久| 五月天激情久久| 另类专区在线| 亚洲春色奇米影视| 色婷五月天| 婷婷五月噜噜| site:hcxsz888.com| 99热最新国内| 亚洲精品亚洲人成人网| 色五月婷婷五月天激情综合| 精品视频这里只有精品| 久久久久视剧HD| 中文字幕 码精品视频网站| 99爱视频在线播放| 亚洲激情99| 久婷久婷激情肉| 97碰碰久久| 大香蕉啪啪网| 伊人玖玖婷婷| 亚洲AAAA网| 日本怕怕视频| 色婷婷综合丁香五月天| 99视频这里有精品| 超碰在线成人| 狠狠色综合网| 欧美性爱特黄一级aaaassss| 玖玖视频福利| 99热99草97| 熟女人妻视频| www.99视频| 六月婷婷久久| 玖玖资源站中文| 99热6这里只有精品6| 日本三级黄色大片| 色色影院黄大片| 成人五月天。COM| 夜夜穞天天穞狠狠穞AV美女按摩| 91啪啪视频| 五月丁香中文| 婷婷五月花西瓜| 色综合色欲综合天天免费 | 天天拍天天做视频| 亚洲无码另类| 亚洲AV日韩无码| 色五月,婷婷大香蕉| 91成人看| 五月丁香六月片| 激情文学综合婷婷五月天丁香花| 色婷婷影视| 337p大胆噜噜噜噜噜91Av| 色婷婷亚洲婷婷在线观看| 中文字幕乱轮| 人妻久久久久久久久妻久久久久| 亚洲色色在线| 四月婷婷五月丁香| 九九十99视频| 六月婷欧美| 2022久久婷婷| 操婷婷基地| 五月婷婷丁香综合,亚洲天堂| 中国无码av| 在线视频九色97| 蜜桃五月天| 99久久66综合| 久热99狠| 牛牛澡牛牛爽| 婷婷黄色网| 五月丁香激情综合网官网| 4399精品一区二区| 99re资源在线视频导航| 东北熟女高潮99综合99| 97人碰人操| 丁香五月天婷婷大香蕉| 99色.com| 在线观看亚洲AV| 9久国产精品| 伊人激情啪啪| 亚洲色婷婷色| 热99精品视频观看| 亚洲色久| 五月婷婷色综图片| 激情五月天黄色小说| 66久久视频在线| 国产五月天激情小说| 亚洲AV成人无码久久精品老人法拉利| 久久99久久99精品免观看软件 | 七月婷婷色香综合网| 日本a片网址| 另类综合激情| 婷婷五月天,影院| 色射婷婷五月天| 五月丁香婷婷激激激综合网色播| 五月婷婷激情视频| 亚洲在线综合| 91精品综合久久久久久五月丁香| 五月丁香影视| 婷婷色色综合| www.97干视频| 丁香五月91| www天天干| 开心激情五月天网| 五月天久久综合| 婷婷五月天激情网| 日本久久色| 久久婷婷丁香| 天天曰夜夜爽| 久久这里只有精品1| 96精品久久久久久久久| 午夜丁香婷婷| 色天使久久综合| 大香蕉五月| 五月天激情小说电影| 五月激激网w'w'w| 丁香五月天色婷婷| 色色99| 久爱综合| 婷婷的99视频网站| 婷婷五月天va| 婷婷六月天激情| 亚洲色久| 激情人妻蜜夜系列区| 久久婷婷内射| 九九人妻福利| 五月花综合视频| 开心五月婷婷| 久久99精品久| 激情久久四色| 婷婷成人综合免费视频| 人人草人人看| 99干日日干| 伊人www22综合色| 思思久热| 狠狠色噜噜狠狠狠狠综合| 成人无码精品1区2区3区免费看| 日本97久久久精品| 99热在这里只有免费精品| 玖玖五月丁香| 中文字幕乱码亚洲精品一区| www.jiujiujiu| 激情五月丁香综合网站| 91久久婷婷| 欧美精品久| 日本婷婷丁香五月| 人人操99| 啪精品| 人妻中文在线| 婷婷五月综合色小姐小说| 99热费观看| 日韩在线aaa| 日本少妇裸体做爰高潮片| av在线播放网址| 婷婷五月天欧美| 91丨九色丨熟女|老版| 丁香五月婷婷操逼| 五月天婷婷在看| www.狠狠| AV五月丁香| 日本狠狠干| 婷婷5月久久综合网站| 99热思思在线观看| 亚洲午夜视频| 色婷婷在线影院| ji'qi'luan'ren'lun| BBWCUCKOLD精品熟妇| 日本a片网址| 色五月激情综合网| 99久久五月丁香野外| 亚洲第一色区| 久久久国产精品黄毛片| 日本激情ⅩXX免费视频| 婷色五月| 亚洲色激情| 五月天成人在线视频网站| 一区二区三区四区牛| 激情综合亚洲色婷婷五月| 成人免费120分钟啪啪| 色婷婷黄色网络| www.久久99| 91五月天| 伊人婷婷大香蕉| 欧美图片丁香五月天| 天天干天天做| 激情丁香五月天图片| 色婷婷五月天视频在线| 色婷久久| 五月色丁香综合| 婷婷六月色| 激情小说婷婷小说| 狠狠穞A片一區二區三區| 综合婷婷六月| 亭亭玉月丁香| 国内婷婷丁香社区在线播放| 国产午夜精品AV一区二区麻豆| 五月婷婷综合激情| 99这里有精品视频|