日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

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

C# NPOI 操作 Excel:選型、流式導(dǎo)出與避坑

C# NPOI 操作 Excel:選型、流式導(dǎo)出與避坑 簡介面向正在用 C# 處理 Excel 的 .NET 開發(fā)者這份資料圍繞 NPOI 庫給出可直接參考的讀寫示例覆蓋舊版 .xls 與新版 .xlsx 兩種格式既適合剛接觸 NPOI 的新手入門也適合需要封裝通用工具類的中級開發(fā)者對照借鑒。壓縮包共 15 個文件以 12 個 dll 依賴庫為主另有 2 個 cs 源碼與 1 個 xml 配置整體約 2.19MBdll 提供 NPOI 各模塊及 JSON、壓縮等支撐能力cs 文件則呈現(xiàn)工具類的組織方式。內(nèi)容涉及工作簿與工作表創(chuàng)建、單元格寫入與遍歷讀取、字體邊框?qū)R等樣式設(shè)置、文件保存和異常處理并按 2012Version 與 201607Version 分版本實現(xiàn)便于比較不同 NPOI 版本下的 API 差異及 HSSF、XSSF 兩套模型。已有 6358 人學(xué)習(xí)可為項目中的 Excel 導(dǎo)入導(dǎo)出、報表生成與工具類封裝提供參考。1. 別急著裝 Office先看清 C# NPOI 操作Excel 到底解決什么問題后臺要導(dǎo)一份對賬單服務(wù)器上沒裝 OfficeMicrosoft.Office.Interop.Excel一跑就拋 0x800A03EC這個場景我見過不止一次。換個角度看C# NPOI 操作Excel 最省心的地方恰恰是它根本不碰 Office——純托管庫在進程里直接拼 xls/xlsx 的二進制結(jié)構(gòu)服務(wù)器裝不裝 Office 都能跑。它一套 API 覆蓋兩種格式老的.xls走 HSSF新的.xlsx走 XSSF數(shù)據(jù)量大再換 SXSSF 流式寫十萬行也不至于把內(nèi)存吃穿。適合做報表導(dǎo)出、批量數(shù)據(jù)導(dǎo)入、模板填充的后臺服務(wù)、桌面工具和接口項目如果你只是偶爾手動改個表那確實沒必要上它。2. 技術(shù)選型與工程結(jié)構(gòu)HSSF、XSSF、SXSSF 三套模型怎么分工打開 NPOI 的命名空間會看到一堆HSSF開頭的類第一反應(yīng)通常是“這不是 Java 那套的翻版嗎”。確實接口模型沿用了IWorkbook/ISheet/IRow/ICell這層抽象好處是同一份業(yè)務(wù)代碼換個實現(xiàn)類就能讀寫不同格式壞處是新手很容易在new的那一行就把類型寫死后面想兼容.xls就得大改。選型這一步基本決定了后面會不會返工所以拆代碼之前先把模型說清楚。2.1 三種工作簿模型的邊界模型對應(yīng)格式內(nèi)存形態(tài)適用量級主要限制HSSFWorkbook.xls全量駐留內(nèi)存幾萬行以內(nèi)單表 65536 行、256 列XSSFWorkbook.xlsxDOM 全量駐留十萬行內(nèi)看堆大小行數(shù)越多內(nèi)存線性上漲SXSSFWorkbook.xlsx滑動窗口 磁盤臨時文件百萬行級已刷出的行不能再改、不能刪行我的默認規(guī)則很粗暴對方?jīng)]明確要求.xls一律XSSFWorkbook導(dǎo)出預(yù)估超過五萬行直接上SXSSFWorkbook只有對接老系統(tǒng)、對方還在用舊版表格軟件時才回頭用HSSF。這條規(guī)則能省掉九成的兼容性扯皮。SXSSF 的代價必須提前說清楚。它把已經(jīng)寫出去的行刷到磁盤臨時文件內(nèi)存里只留窗口內(nèi)的那幾百行所以你別想回頭sheet.GetRow(0)去改第一行——那時候它已經(jīng)在臨時文件里了GetRow直接返回null。需要回頭改的東西合計行、頁腳匯總要么放最后寫要么在窗口還沒刷出去之前處理掉。這個限制踩過一次就記住了。還有一個反直覺的點讀文件時判斷格式不要靠文件后綴用WorkbookFactory.Create(stream)讓它自己嗅探。業(yè)務(wù)方發(fā)過來的“對賬單.xls”里裝著的其實是 HTML 表格這種事我一年能遇到兩回。2.2 示例工程的分層與目錄結(jié)構(gòu)示例工程我按“核心邏輯不依賴 UI、不依賴文件系統(tǒng)”來切目錄長這樣NpoiExcelDemo/ ├── NpoiExcelDemo.sln ├── src/ │ ├── NpoiExcelDemo.Core/ # 只做 Excel 讀寫不放業(yè)務(wù) │ │ ├── ExcelReader.cs │ │ ├── ExcelWriter.cs │ │ ├── ExcelStyleFactory.cs │ │ ├── ExcelColumnAttribute.cs │ │ └── Models/OrderRow.cs │ ├── NpoiExcelDemo.Console/ # 命令行入口跑兩個示例 │ │ └── Program.cs │ └── NpoiExcelDemo.Tests/ # xUnit用內(nèi)存流做往返測試 │ └── RoundTripTests.cs ├── samples/ │ ├── legacy.xls # 老格式樣本 │ └── modern.xlsx # 新格式樣本 └── templates/ └── 對賬單模板.xlsxCore里我堅持不讓IWorkbook泄漏出去。對外方法簽名一律是Stream進、Stream或ListT出業(yè)務(wù)層根本不需要using NPOI.SS.UserModel;。這么做有兩個直接好處單測里傳一個MemoryStream就能跑完整鏈路不落盤Web 上傳場景拿到IFormFile.OpenReadStream()可以直接喂進去不用先存臨時文件再刪。samples目錄的作用容易被低估。.xls和.xlsx在單元格類型、日期序列號、公式緩存上的行為并不完全一致光靠猜沒用必須有一份真實的舊格式文件反復(fù)驗證。templates目錄則是給“模板填充”這種需求準備的——表頭、樣式、合并單元格都在模板里做好代碼只負責往里塞數(shù)據(jù)行改樣式的時候不用改代碼。3. 從零跑通裝包、寫第一個 xlsx、再讀回 xls這一章的操作照著敲就能跑起來目標是把“寫出去”和“讀進來”這兩條鏈路都走通一遍中間不留黑匣子。3.1 建工程與引包# 建解決方案和兩個項目 dotnet new sln -n NpoiExcelDemo dotnet new classlib -n NpoiExcelDemo.Core -o src/NpoiExcelDemo.Core dotnet new console -n NpoiExcelDemo.Console -o src/NpoiExcelDemo.Console # 掛到解決方案下 dotnet sln add src/NpoiExcelDemo.Core src/NpoiExcelDemo.Console # NPOI 只需要裝在 Core 里Console 通過項目引用拿到 dotnet add src/NpoiExcelDemo.Core package NPOI dotnet add src/NpoiExcelDemo.Console reference src/NpoiExcelDemo.Core這里面幾個參數(shù)值得說明。-o是指定輸出目錄把項目塞進src/是習(xí)慣不塞也能跑。dotnet add package NPOI不寫版本號默認拉最新穩(wěn)定版如果目標框架是netstandard2.0要給老項目引用加-f netstandard2.0或者直接改 csproj 里的TargetFramework。Framework 4.x 的老項目不走 CLI在包管理器里裝完記得看一眼依賴項——NPOI 會順帶拉一個壓縮庫發(fā)布的時候別只拷了NPOI.dll就以為完事了缺依賴的報錯信息通常很含糊只說“未能加載文件或程序集”排查起來全靠猜。提示目標框架選net8.0還是netstandard2.0取決于調(diào)用方。庫給多個項目共用就選netstandard2.0純新項目選net8.0能用上Span之類的新 API。3.2 寫出第一個 .xlsxNPOI 的層級就四層工作簿 → 工作表 → 行 → 單元格。下面這段是最小閉環(huán)using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; public static void WriteSimple(string path) { // 1. 工作簿XSSF 對應(yīng) .xlsx IWorkbook workbook new XSSFWorkbook(); ISheet sheet workbook.CreateSheet(對賬單); // 2. 表頭行 IRow header sheet.CreateRow(0); string[] titles { 訂單號, 客戶, 金額, 下單時間 }; for (int i 0; i titles.Length; i) { header.CreateCell(i).SetCellValue(titles[i]); } // 3. 數(shù)據(jù)行 IRow row sheet.CreateRow(1); row.CreateCell(0).SetCellValue(SO-2024001); row.CreateCell(1).SetCellValue(某客戶); row.CreateCell(2).SetCellValue(1280.50); // 數(shù)值走 double 重載 row.CreateCell(3).SetCellValue(DateTime.Now); // 日期直接給 DateTime // 4. 列寬單位是 1/256 個字符寬度20 * 256 20 字符 sheet.SetColumnWidth(0, 20 * 256); using var fs new FileStream(path, FileMode.Create, FileAccess.Write); workbook.Write(fs); }逐段說一下。CreateSheet傳的名字就是 Excel 底部的標簽名超過 31 個字符或含[]:*?/\會直接拋異常。CreateCell(i)的索引從 0 開始跳著創(chuàng)建也允許比如只創(chuàng)建第 0 和第 5 個中間的空單元格讀回來是CellType.Blank。金額這一行是關(guān)鍵SetCellValue(1280.50)存的是數(shù)值Excel 里能參與求和如果圖省事寫成SetCellValue(1280.50)存的是文本Excel 會在左上角給你標個綠色小三角用戶一點“轉(zhuǎn)換為數(shù)字”全部格式又亂掉血淚經(jīng)驗。日期同理SetCellValue(DateTime)會把它轉(zhuǎn)成序列號存儲顯示格式由單元格樣式的DataFormat決定不設(shè)樣式就是默認的日期顯示。最后workbook.Write(fs)這個重載在不同版本上行為有差異有的會把流關(guān)掉有的不會。不確定的話就在Write之后立刻fs.Flush()并且不要指望后面還能繼續(xù)往這個流里寫東西。3.3 用 WorkbookFactory 統(tǒng)一讀 .xls 和 .xlsx讀這邊最容易犯的錯是寫死new XSSFWorkbook(fs)遇到.xls就拋Invalid header signature。正確姿勢是工廠加接口using NPOI.SS.UserModel; public static void ReadAny(string path) { using var fs new FileStream(path, FileMode.Open, FileAccess.Read); // 關(guān)鍵工廠根據(jù)文件頭自動選 HSSF 還是 XSSF IWorkbook workbook WorkbookFactory.Create(fs); for (int s 0; s workbook.NumberOfSheets; s) { ISheet sheet workbook.GetSheetAt(s); // LastRowNum 是最后一行索引空表返回 -1不能直接當行數(shù) for (int r sheet.FirstRowNum; r sheet.LastRowNum; r) { IRow row sheet.GetRow(r); if (row null) continue; // 整行被刪過就是 null不判會 NRE for (int c 0; c row.LastCellNum; c) { ICell cell row.GetCell(c); Console.Write(ExcelReader.GetCellText(cell) \t); } Console.WriteLine(); } } }WorkbookFactory.Create支持傳Stream或FileInfo內(nèi)部會讀文件頭判斷格式比看后綴靠譜得多。FirstRowNum和LastRowNum都返回索引空表或者全空行的情況下LastRowNum可能是-1、0或者你以為的行數(shù)寫for循環(huán)時用并且判row null這兩道保險缺一不可。GetSheetAt是按順序取GetSheet(名字)是按名取。名字取不到會返回null而不是拋異常后面直接.GetRow()就炸了所以按名取的時候記得判空。3.4 跑起來看一眼dotnet run --project src/NpoiExcelDemo.Console -- ./out/demo.xlsx ./samples/legacy.xls參數(shù)依次是輸出路徑和要讀的舊格式樣本。跑完先確認三件事out/demo.xlsx能被正常打開、金額那一列右對齊且能求和、legacy.xls的中文沒有亂碼。這三條過了說明環(huán)境、依賴、編碼都沒問題后面再改代碼就是純業(yè)務(wù)活了。4. 核心模塊拆解取值、樣式、大文件、格式差異這一段是真正要反復(fù)用的東西。示例里那幾個方法寫短是因為把所有坑都收進了這幾個方法里。4.1 單元格取值CellType 分支一個都不能漏讀 Excel 最典型的故障是“日期變成 45000 這種數(shù)字”根子在CellType.Numeric—— 日期在底層就是數(shù)字靠樣式區(qū)分。所以取值方法必須寫成這樣public static string GetCellText(ICell cell) { if (cell null) return string.Empty; switch (cell.CellType) { case CellType.String: return cell.StringCellValue; case CellType.Numeric: // 日期底層是序列號必須靠單元格樣式判斷直接 ToString 會得到 45000 if (DateUtil.IsCellDateFormatted(cell)) return cell.DateCellValue?.ToString(yyyy-MM-dd HH:mm:ss) ?? ; return cell.NumericCellValue.ToString(); case CellType.Boolean: return cell.BooleanCellValue ? TRUE : FALSE; case CellType.Formula: // 公式要按緩存結(jié)果類型再分一次支不能直接取 StringCellValue switch (cell.CachedFormulaResultType) { case CellType.Numeric: return DateUtil.IsCellDateFormatted(cell) ? cell.DateCellValue?.ToString(yyyy-MM-dd) ?? : cell.NumericCellValue.ToString(); case CellType.String: return cell.StringCellValue; default: return cell.ToString() ?? ; } case CellType.Blank: return string.Empty; case CellType.Error: // 把 #DIV/0! 這類錯誤碼還原成可讀文本 return FormulaError.ForInt(cell.ErrorCellValue).String; default: return cell.ToString() ?? string.Empty; } }三個地方值得單獨講。DateUtil.IsCellDateFormatted(cell)是個靜態(tài)工具方法內(nèi)部讀的是單元格樣式的DataFormat字符串判斷是不是日期/時間格式比自己寫正則靠譜。CellType.Formula分支里必須先看CachedFormulaResultType—— 公式單元格的StringCellValue只有在緩存結(jié)果是字符串時才有效緩存是數(shù)字你卻去取字符串拿到的是空串或者直接拋異常這種問題在日志里只表現(xiàn)為“某幾列讀出來是空的”非常難定位。FormulaError.ForInt把0x07這種錯誤碼轉(zhuǎn)成#DIV/0!報表里帶著錯誤碼有時候反而是有用的信息別急著當成異常吞掉。注意DateCellValue在較新版本里是DateTime?老版本可能是DateTime。如果編譯報“無法將 DateTime 轉(zhuǎn)換為 DateTime?”說明你手上的版本比較舊去掉?.就行。4.2 樣式復(fù)用ICellStyle 是共享池不是隨手 new 的樣式是 NPOI 里最容易被寫成性能問題的模塊。工作簿內(nèi)部維護一個樣式池你每CreateCellStyle()一次就多占一個槽位.xls上限大約 4000 個.xlsx大約 64000 個超了直接拋異常而且文件體積會以肉眼可見的速度膨脹——見過一個導(dǎo)出的表 800KB 數(shù)據(jù)配 60MB 樣式就是這么來的。正確做法是做個樣式工廠按 key 緩存public sealed class ExcelStyleFactory { private readonly IWorkbook _wb; private readonly Dictionarystring, ICellStyle _cache new(); public ExcelStyleFactory(IWorkbook wb) _wb wb; public ICellStyle Money(string format #,##0.00) { if (_cache.TryGetValue(format, out var cached)) return cached; var style _wb.CreateCellStyle(); // 每調(diào)一次就占一個樣式槽 style.DataFormat _wb.CreateDataFormat().GetFormat(format); style.Alignment HorizontalAlignment.Right; style.BorderBottom BorderStyle.Thin; style.VerticalAlignment VerticalAlignment.Center; _cache[format] style; return style; } }CreateDataFormat().GetFormat(#,##0.00)里的格式串跟 Excel 自定義格式語法一致0.00%、yyyy/m/d、#,##0;(#,##0)這些都能直接用格式串本身也是被緩存的同一個串多次調(diào)用返回同一個對象。Money方法用格式串當緩存 key是因為同一個工作簿里不同列可能需要不同小數(shù)位用字符串做 key 天然支持多套格式共存。用法上先取一次樣式循環(huán)里反復(fù)賦給不同單元格var styles new ExcelStyleFactory(workbook); var moneyStyle styles.Money(); foreach (var item in rows) { var cell row.CreateCell(2); cell.SetCellValue(item.Amount); cell.CellStyle moneyStyle; // 賦值不是 new }4.3 SXSSF 流式導(dǎo)出十萬行不能再用 XSSF數(shù)據(jù)量上去以后XSSFWorkbook把所有行都留在內(nèi)存里十萬行乘以十幾列堆基本就撐不住了。換成 SXSSFpublic static void WriteLarge(string path, IEnumerableOrderRow rows, int windowSize 500) { // windowSize內(nèi)存里保留的行數(shù)超出的會被刷到磁盤臨時文件 var workbook new SXSSFWorkbook(windowSize); try { var sheet workbook.CreateSheet(明細); int r 0; foreach (var item in rows) { var row sheet.CreateRow(r); row.CreateCell(0).SetCellValue(item.OrderNo); row.CreateCell(1).SetCellValue(item.CustomerName); row.CreateCell(2).SetCellValue(item.Amount); // 注意這一行一旦被刷出去后面 GetRow(r) 就取不到了 } using var fs new FileStream(path, FileMode.Create, FileAccess.Write); workbook.Write(fs); fs.Flush(); } finally { workbook.Close(); workbook.Dispose(); // 必須顯式調(diào)用否則臨時文件會留在系統(tǒng)臨時目錄 } }windowSize這個參數(shù)是內(nèi)存和磁盤 IO 的平衡點。設(shè)太小比如 100刷盤頻繁寫十萬行能明顯感覺到慢設(shè)太大比如 5000內(nèi)存優(yōu)勢就沒那么明顯了。我一般按 500 起步實測導(dǎo)出耗時偏高再往上調(diào)。Dispose()這一步不能省。SXSSF 在系統(tǒng)臨時目錄里建的文件只有Dispose才會清理進程長時間跑批又不釋放臨時目錄遲早被塞滿然后你會收獲一堆“磁盤空間不足”的告警排查半天發(fā)現(xiàn)是自己導(dǎo)出的表。4.4 兩種格式的行為差異能力.xlsHSSF.xlsxXSSF / SXSSF單表最大行655361048576單表最大列25616384單元格樣式上限約 4000約 64000文件本質(zhì)二進制復(fù)合文檔zip 包 若干 xml新函數(shù)支持只有老函數(shù)集基本都能用讀入內(nèi)存占用相對低相對高這張表最有用的兩行是行數(shù)上限和樣式上限。行數(shù)超了不會報錯會直接截斷一百萬條數(shù)據(jù)導(dǎo)出成.xls最后只剩六萬五而且沒有任何提示——這種 bug 上線之后才被發(fā)現(xiàn)返工成本極高。樣式上限則是另一個方向.xls到 4000 就拋InvalidOperationException堆棧里看不到你的業(yè)務(wù)代碼只看到 NPOI 內(nèi)部的Workbook.CreateCellStyle。5. 避坑與排查五個真踩過的問題5.1 日期讀出來是 45000 這樣的整數(shù)現(xiàn)象導(dǎo)入的對賬單里時間列全是五位數(shù)用戶以為數(shù)據(jù)錯了。 原因CellType.Numeric分支直接NumericCellValue.ToString()沒判斷日期格式。日期在 Excel 里本質(zhì)是從 1900-01-01 起算的天數(shù)45000就是某個真實日期。 解決取值統(tǒng)一走 4.1 那個GetCellTextNumeric分支先DateUtil.IsCellDateFormatted(cell)再決定是格式化日期還是原樣輸出數(shù)字。5.2 導(dǎo)出的文件打不開提示“發(fā)現(xiàn)不可讀取的內(nèi)容”現(xiàn)象瀏覽器下載下來的 xlsxExcel 打開報修復(fù)提示點“是”之后內(nèi)容可能還在也可能丟了。 原因九成是流被提前關(guān)掉或者Position沒歸零。workbook.Write(stream)在某些版本會關(guān)閉傳入的流之后Response.Body再寫就寫不進去了另一種是同一個MemoryStream寫完沒Position 0就直接當讀的源用。 解決寫文件的流自己using管好生命周期別依賴庫來關(guān)Web 場景用MemoryStream寫完先ToArray()再輸出讀之前一律stream.Position 0。5.3 大批量導(dǎo)出時內(nèi)存飆升甚至 OOM現(xiàn)象導(dǎo)五萬行的時候進程內(nèi)存漲到 2G 以上容器直接被 kill。 原因用了XSSFWorkbook所有行和單元格對象都駐留在堆里一個單元格對象幾十字節(jié)五萬行乘二十列就是一千萬個對象。 解決換成SXSSFWorkbook窗口設(shè) 500 左右順手檢查一下是不是在循環(huán)里CreateCellStyle那個也是內(nèi)存大戶。5.4 讀 .xls 報 Invalid header signature現(xiàn)象文件后綴明明是.xlsnew XSSFWorkbook(fs)直接拋異常。 原因一種是用錯了實現(xiàn)類.xls得用 HSSF另一種更陰——某些系統(tǒng)導(dǎo)出的“xls”其實是 HTML 表格或者 CSV 改了后綴二進制頭根本不是 OLE 復(fù)合文檔。 解決讀入口統(tǒng)一用WorkbookFactory.Create(fs)讓庫自己判斷如果工廠也認不出來用十六進制工具看一眼文件頭D0 CF 11 E0是真的 xlsPK是 xlsxhtml或者table就是偽裝的得先當文本解析再轉(zhuǎn)。5.5 單元格樣式莫名不生效現(xiàn)象設(shè)置了邊框和背景色打開文件發(fā)現(xiàn)只有第一行有后面全是白板。 原因ICellStyle是工作簿級別的共享對象但很多人習(xí)慣在循環(huán)里CreateCellStyle()之后只對當前單元格賦值同時又在別處CloneStyleFrom覆蓋了屬性結(jié)果樣式對象被復(fù)用后互相污染。 解決樣式只在工廠里創(chuàng)建一次循環(huán)里只做cell.CellStyle cachedStyle賦值確實需要“繼承再加一點差異”的用CloneStyleFrom克隆出一個新對象并單獨緩存別在原對象上改。6. 二次開發(fā)把示例收成一層能復(fù)用的導(dǎo)入導(dǎo)出示例代碼寫到后面你會發(fā)現(xiàn)每個業(yè)務(wù)實體都在重復(fù)“讀表頭 → 找列 → 轉(zhuǎn)類型”這套動作。我一般會加一個特性加反射的映射層讓業(yè)務(wù)代碼只寫實體。[AttributeUsage(AttributeTargets.Property)] public sealed class ExcelColumnAttribute : Attribute { public ExcelColumnAttribute(string title) Title title; public string Title { get; } } public sealed class OrderRow { [ExcelColumn(訂單號)] public string OrderNo { get; set; } ; [ExcelColumn(金額)] public decimal Amount { get; set; } [ExcelColumn(下單時間)] public DateTime CreatedAt { get; set; } }讀取端靠表頭文本反查屬性允許列順序和實體屬性順序不一致public static ListT ReadT(Stream stream) where T : new() { var map typeof(T).GetProperties() .Select(p (Prop: p, Attr: p.GetCustomAttributeExcelColumnAttribute())) .Where(x x.Attr ! null) .ToDictionary(x x.Attr!.Title, x x.Prop); IWorkbook wb WorkbookFactory.Create(stream); ISheet sheet wb.GetSheetAt(0); IRow header sheet.GetRow(sheet.FirstRowNum); // 表頭文本 - 列索引 var index new Dictionarystring, int(); for (int c 0; c header.LastCellNum; c) { var title ExcelReader.GetCellText(header.GetCell(c)).Trim(); if (!string.IsNullOrEmpty(title) map.ContainsKey(title)) index[title] c; } var list new ListT(); for (int r sheet.FirstRowNum 1; r sheet.LastRowNum; r) { var row sheet.GetRow(r); if (row null) continue; var entity new T(); foreach (var (title, prop) in map) { if (!index.TryGetValue(title, out var c)) continue; var text ExcelReader.GetCellText(row.GetCell(c)); if (string.IsNullOrWhiteSpace(text)) continue; // 可空類型要剝一層Convert.ChangeType 不認 NullableT var target Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType; prop.SetValue(entity, Convert.ChangeType(text, target)); } list.Add(entity); } return list; }改完之后業(yè)務(wù)側(cè)就一行var rows ExcelImporter.ReadOrderRow(stream);字段增減只改實體上的特性不用碰解析代碼。驗證方式我用往返測試不落盤、跑得快[Fact] public void Xlsx_RoundTrip_ShouldKeepAmount() { var ms new MemoryStream(); using (var wb new XSSFWorkbook()) { var sheet wb.CreateSheet(t); var head sheet.CreateRow(0); head.CreateCell(0).SetCellValue(訂單號); head.CreateCell(1).SetCellValue(金額); var data sheet.CreateRow(1); data.CreateCell(0).SetCellValue(SO-1); data.CreateCell(1).SetCellValue(99.5); wb.Write(ms); } ms.Position 0; // 不歸零讀出來就是空的 var rows ExcelImporter.ReadOrderRow(ms); Assert.Single(rows); Assert.Equal(99.5m, rows[0].Amount); }這個測試我建議再補三個邊界樣本一個帶合并單元格的表頭、一個日期列為空的行、一個金額列是公式的表。前兩個驗證判空邏輯第三個驗證CachedFormulaResultType分支。這三個樣本跑通線上八成的導(dǎo)入投訴基本能提前擋掉。從那以后我每次接 Excel 相關(guān)的需求都會先問清三句話讀進來的是什么格式、寫出去給誰用、最大多少行然后才動手寫第一行代碼。希望幫到你。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
99精品九九九九九九| 伊人久久在线视频观看| 翔田千里A片一区二区| 伊人网综合在线视频| 欧美亚洲另类在线蜜桃| 人妻激情另类| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 大香交| 一区超碰一区| 福利操逼| 乱理日韩中文| 麻豆成人影音在线| 一级久久久久久久久久久| 久久精品小视频| 美女主播色欲91抠b在线播放| av橘色网站| 午夜操一操| 无码操逼网| 女色视频社区| AV有码在线| www.91人妻.com| 日韩无码专区| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 69丨亚洲丨精品丨入口免费播放| 美女诱惑一区| 色丁香五月婷婷| 久久精品国产久精国产| 国产丝袜欧美在线视频| 日韩AV片| 欧洲精品一级二级精品综合视频综合| 欧美性爱中文字幕无线码| 天美av在线观看| 9九九国产| 91社操逼| 哈哈操 大香蕉| 国产91乱伦| 午夜天堂精品久久| 国产精品视频内谢女人| 懂色综合久久久| 美女丝袜激情小说| 国产吞精a级片激情电影| 青青草乱入乱欲视频在线观看| 亚洲色图欧美色图另类图片| 热久久91婷婷| 九月伊人中文字幕| 玖玖97综合| 97碰久久| 亚洲情色电影网| 色原狠狠天天天| 亚欧成人综合影院| 久久精品视频一区三区小泽玛利亚| 欧美综合天天| 亚洲综合图色在线| 亚洲精品无码少妇久久| 九九九九热只有精品| 亚洲福利中文字幕在线| 亚洲人妻五月丁香婷婷| 农村妇女一级二级三级视频| 99re超碰| 天天综合网AV91| 欧美激情性爱视频网站| 人妻少妇精品无码专区二区密桃| 黑人精品成人一区二区三区 | 九九热男人天堂| 啊啊啊爽爽| 亚洲,欧美,春色,另类| 农村少妇久久久久久久| 黑操B| 亚州综合色| 97视频观看| 人人性爱视频免费| 懂色av中文字幕一区二区三区天美| 国产曰批免费观看久久久| 超碰天天操你比| 先锋色眉乱伦资源| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 中文字幕一区二区三四五区日日骚| 免费一级a毛片久久久久久鸭绿欲| 亚州熟妇精品| 五月大香蕉| 婷婷超| 啊啊啊好湿久久| 国产一区二区成人av在线播放| 91热情品| 久久久久久人妻| 97干色| 操b网站亚洲无码| 亚洲精品成人动漫在线| 97超级久久| 久久久久国产亚洲一区欧美色图日韩| 国产精品久久伊人| 眼镜人妻101.com| 91丰满| 9热9热综合网| 激情文学亚洲| 熟女自慰久久久| 黄片免费久久久久久久| 91N欧美| 思思视频免费看网站| 国产一| 一区二区日韩欧美久久| 国产h片在线观看视频| 东京热91| 人妻熟女一区二区| 国产九九久久久精品| 国产精品国产自产高清AV| 四虎影视国产精品| 中文字幕女同在线| a男人的天堂| 日韩一级欧美一级在线观看| 人妻献身系列第54部| 青青草一本道福利视频| 国产浮力影院第1页| 色五月av| 亚洲男人在线观看天堂| 九九九九九九免费视频| 日韩激情啪啪啪| 亚洲一区二区中文字幕| 999综合色| 欧美综合97www| 一区二区三区机械有限公司| 美女极品一区二区三区| 中文字幕综合人妻| 大香蕉伊人网WWWn0n| 欧美日韩性爱操大逼| 色吧5亚洲| 日韩欧视频| 东方亚洲在线操逼天堂| 国产精品色哟哟| 女同亚洲欧美一二三区久久电影| a在线观看| 一本精品日本在线视频精品| 加勒比日本在线| 蜜臀久久久久久999| 人人爱操| 五月色丁香| 色爱国产| 欧美日韩国产中文精品字幕自在自线 | 黄色av网站在线播放| 欧美AB在线| 91丝袜美女视频| 久久亚洲一区女同性恋中文字幕| 亚洲丝袜综合| 好色综合| 久久久中文| av资源在线观看少妇| 国产高清成人免费视频| 热思思免费视频| 色悠久| 91老熟妇| 多毛小伙内射老太婆| 天天操天天射天天日| 精品人妻av在线播放| 欧美一区二区三区另类精品| 精品性爱一区二区| 91校园春色长篇| 欧美黄色片AAAAA| 久久98| 日韩人妻资源在线看| 欧美日韩国产传媒在线精品| 狠狠夜色午夜久久综合在线| 1024午夜激情男人的天堂| 91蜜桃传媒精品久久久一区二区| 色欲天天综合久久久无码网中文| 日本色色色色色视频| 精品无码产区一区二| 一区二区三区四区在线不卡| 玖玖资源视频一区二区三区| 亚洲国产精品无石码久久| 久久产精品一区二区三区电影| 伊人五月天婷婷| 夜夜影视四色| 99re6国产精品99re在线| 久久久久久久久久久久久久久乱码 | 美日韩一卡二卡三卡免费人妻精品| 老熟女乱伦片| 国产宅男宅女在线观看| 99这里只有精品| 91色爽欧美| 99精品人人爽| PMv在线观看| 亚洲中文日韩欧美大香蕉视频| 91热爆在线| 午夜呻吟欧美| 蜜臀久久99精品久久久久久酒店 | 免费A V在线播放| 丁香五月性爱| 天天天做天天天爱天天天爽| 亚洲综合另类小说色区亚洲成av人片在www | 2017天天操天天日| 国产无马在线| 五月天婷婷欧美三区| 国产无码精品高清| 亚洲午夜免费狠狠干| 久久精品中文| 国产精品视频91久久| 国产精品熟女乱伦| 97在线欧| 一个人免费HD91视频| 日本A级视频| 超碰97精品| 国产亚洲禁久一区二区| 屁股久久久久久久久| 亚洲国产美女久久久久| 欧美日韩m| 五毛骚逼极品美女怕怕| 亚洲成a人片在线观看中文!!!| 青苹果影院男人的天堂| 99久久无码| 99在线精品观看99| 亚洲骚逼少妇| 日日夜夜干| 操91| 久久久亚洲精品中文字幕人妻| 久久久久久国产成人| 狠狠躁AV| yw尤物av无码点击进入麻豆| 91啪9色| 美女9118禁| 久久草大香蕉| 超碰99在线| 九九热九九| 国产白丝网站| 久久嫩草国产成人一区| aaa亚无码专区| 亚洲精品97在线| 久久久999| 97免费在线视频在线观看| 久久东京热久久| 丁香九月激情啪| 欧美亚州综合网图片| 色情五月综合婷婷| 亚洲影院成人| 国产熟女精品区| 人妻人人做人人澡人人爽欧美一区| 亚洲综合一| 无码黑人精品一区二区三区三| 中文字幕神马久久| 亚洲AV永久无码一区仙野| 国内一区二区三区| 一区二区三区机械有限公司| 偷拍偷窥与盗摄视频专区| 欧洲射精91| 一级人妻性爱视频| 九九热在线精品视频| 天天色天天干天天射| 久久熟女精品不卡一区| 天天日日舔舔| 91c色| 久久尹人大香焦视| 最新av在线| 一区二区三区激情在线观看| 日韩亚洲欧美中文字幕| 精品一二三区四视频| 国产一区二区在线电影| 国产视频三区四区| 天天看天天在线精品| 自拍啪啪视频| 精品久久久久久久久久久久| 99无码视频| 亚洲中文字幕在线视频一区二区| 性生活无遮挡纯毛片在线看| 欧美成人性爱视频大全| 国产精品高潮久久久无码| 超碰夫妻97| 日本天天操| 久久精品午夜国产亚洲AV无码| 另类专区加勒比| 欧美九9 9 9| 熟女这里只有精品6| 久久婷婷苹果| 亚洲蜜臀视频精品久久| 久操高青| 熟妇在线视频一区二区| 夜嗨影院| 欧美 日韩 亚洲 春色| 欧美日韩人妻精品一区二区三区| 精品久久久久久AV无码| 麻豆成人影音在线| 欧美人妻熟女在线| 国产自产22区| 99RE在线视频精品,这里只有精品| 中文字幕一区日韩精| {男男暴菊gay无套网站| 清纯唯美亚洲综合| 啊啊啊轻点在线观看| 18岁禁 茉莉成人久久| 人人人人人人少妇| 女人高潮抽搐喷水视频网站| 中文字幕123| 人人妻人人爽 97人人看碰人免费公开视频 | 密乳AV免费观看| 99re免费| 97亚洲欧美| 伊人aaa| 吉田爱美AV在线| 一区二区 韩日AV| 国产91精品福利在线| 乱伦一二三区| 91成人在线| 欧州色图区| www狠狠| 久久久久免费看少妇A片特黄| 亚洲天堂欧美| 天天92av| 欧亚日韩一区在线| 久久久久成人网| 久久精品成人| 撸无码不卡免费视频| 九色 蝌蚪 熟女自| 久草毛片| 东京太热男人的天堂久久久| 人人爱操| 亚洲国产第一页综合视频| 久久婷婷精品| 岛国小电影| 久久精彩视频9| 婷婷色一区| A V少妇特黄三级| 午夜天堂精品久久久久91| 国产农村一一级特黄毛片| 99精品成人免费看| 看一级黄色视频| 老司机香蕉| 天天欲望网| 色综91| 91搡老女人老妇女老熟女歌词翻译| 亚洲丝袜少妇在线| 神马久久久久| 久久久精品91八戒| 亞洲久久直播| 超碰免费人人| 看日韩美女二区三区免费操逼视频| 五月丁香六月婷| 嗯~啊~快点 死我视频| 日韩性爱一级片| 性爱综合一区二区| 亚洲制服欧美另类内射| 欧美综合区| 私色综合网| 蜜臀亚洲中文| 欧美日韩国产人人| 999精品久久久久久久| 精品无码一区二区三区色欲| 国产综合色精品在线观看| 久久国产AⅤ| 欧美综合网1| 97超碰公开| 久久色精品视频在线| 超碰在线欧美性爱激情| 中文字幕一区二区日韩网| 欧美劲爆视频一区二区| 日韩av熟女一区二区三区成人| 干B| 人妻熟女一区二区三区视频| 日韩熟女乱伦中出| 99久久综合| 日本一二区免费| 久草精品视频| 中国一级αV| 国产精品欧美日韩久久| 亚洲超碰在线| 超碰在线97国产| 亚洲高清色综合| 国产日韩手机视频在线| 久久精品人体AV| 成年人一级黄色毛片大全在线观看| 色丁香五月婷婷| 亚洲 欧美 另类 综合 偷拍| 好吊色综合| av国产无码| 亚洲精品 欧美精品| 立川理惠被中出无码| 视频分类 国内精品| 亚洲高清视频在线观看| 99热这里只有精品18| 欧美日韩性爱无码| 宗合情欲网| 日本大香蕉综合网红本杳社区| 国产精品人人爽人人做可爱福利| 国产av尤物| 美女网站黄页| 秋霞网—男女啪啪亚洲免费体验区| 久久香蕉网| 亚洲91综合| 日韩无码操逼片| 欧美久久九九| 中国熟妇| 日本片日本片祼观看网站在线看中文版网页在线看 | 免费视频在线一区二区不卡| 开心激情婷婷| 久夜操| 人人扣人人操| 少妇久久久免费| 日韩AC| 超碰美女97| 新婚人妻扶着粗大强行坐下| 欧美第一页| 国产精品蜜乳AV| 青青草字幕AV| 久久直播国产| 亚洲加勒比色图| 亚洲黄色网址视频| 日比av无码| 久久免费精彩视频| 色噜噜狠狠色综无码久久合欧美| 97超碰碰碰| 亚洲 暴爽 AV人人爽日日碰| 91在线视频免费中出| 搡老女人911熟妇老熟女| 青青青操| 欧美亚洲一级在线观看| 亚洲图片欧美另类综合免费视频大大香| 日本高清_区二区三区 | 99亚洲国产精品色一区二区三区| 偷拍亚洲高清图片| 啪啪免费| 91综合天天看| 日韩乱码av| 免费看片黄| 99日免费视频中文字幕| 日本久久天堂| 国产精品探花色| 亭亭在线资源| 婷婷久草一区二区三区| 亚洲精品成人动漫在线| 九色 蝌蚪 熟女自 | 精品区国产区一区二区三区| 九九九九亚洲| 日欧美色| 柠檬AV导航| 中文字幕精品探花视频| 亚洲男人天堂2| 9九九九九视频在线观看| 五码视频在线观看| 老熟女综合网| 青青草五月天| 久热69九色熟妇97| 狠狠激情综合狠狠操中文字幕| 日韩亚洲欧美中文字幕| 久9综合在线| 日韩欧美大片免费高清啪啪| 国产精品国产| 蜜臀av中字字幕网站| 丁香六月东京热| 久久精品人妻一区| 久久这里只精品| 75大香蕉| 老鸭窝亚洲毛片| 亚洲日韩美女中文字幕乱| 亚洲情色综合| 99re99在线视频| 噜噜噜久久亚洲精品色情| 精品视频久久久久九九九九9999| 日本一区二区三区四区免费观看| 色吧5亚洲| 国产9熟妇视频网站| 久久草视频污视频| 亚洲丝袜天堂| 免費人妻夜夜爽天天爽爽一区| 亚洲一区中文字幕一区| 欧美黑人精品在线播放| 麻豆国产视频精品观看| 欧美精品宗合| 麻豆天美一区二区| 人人妻人人爽| 啊啊啊轻点在线观看| 精品成人动漫一区二区| 2019精品国产无码成人| 欧美色网| 国产资源中文字幕在线| 日韩欧美性吧婷婷乱伦大香蕉| 上床啊啊啊| asc国产精品| 欧美性综合| 啊灬快c我灬啊灬用力灬啊灬-国产精品性做久久久久久-成人AV | 亚洲av噜噜噜噜噜噜| 密臀在线视频| 肥佬影院91| 午夜美女诱惑电源网| 中文日韩欧美熟| 后入式视频国产自| 亚洲综合贴图91| 国产性爱欧美性爱在线| 91欧美性| 熟女熟妇一区二区三区视频| 天天在线91| 久久精品成人一区二区三区蜜臀| 9997se| 蜜臀久久精品久久久久视频| 美女骚尻视频| 女人香蕉久久毛毛片精品| 亚洲日精品| 风间由美日韩欧美久久| 人爽不卡视频| 亚洲福利影院一区久久| 不卡中文字幕aⅴ在线| 综合影院永久入口国产| 久久精品国产亚洲AV高清演员表 | 欧美综合色,www| 国产精品久久久久婷婷二区次| 校园春色第一页| 高清无码人妻久久久一区二区三区aⅴ| 果冻传媒A片麻豆熟妇人妻| 一本久道久久综合狠狠爱一密臀精| 97se亚洲综合自| 大学生美女口爆| 亚洲电影中字一区二区| 久久综合资源一区二区| 亚洲欧洲网站免费观看| 嗯嗯嗯啊啊啊在线免费观看| 蜜桃视频一区二区三区在线观看| 国产女人9999| 青青久久艹| 免费A片三p视频| 亚洲字幕一区二区| 丁香色色网| 日本淫色网| 伊人aaa| 欧美男人的天堂| 国产精品久久久 | 一区AV| 乱伦AVxx| 天无日色综合| 综合av影片| 国产嫩草精品A88AV| 国产精品免费久久久久久久久久| 国产中文精品一区二区在线观看| 综合色播| 噜噜噜久久亚洲精品色情| 嗯~啊~轻一点 视频| 人人爱人人乐人人操| 久久毛卡| av婷婷色网| 中文字幕欧美日本乱码一线二线 | 嫩草黄页| 欧美欧美啪啪视频| 干婷婷综合网| 色老汉色| se..亚洲欧美| 岛园激情| 欧美日韩大陆黑人少妇99| 久区视频| 粉嫩不卡一区二区性爱| 亚州成人A√| 亚洲综合在线91| 久久男人精品| 老鸭窝亚洲毛片| 啊啊啊轻点在线观看| 蜜臀AV秘一区翔田千里| 亚码激情| 女人香蕉久久毛毛片精品| 高潮毛片无遮挡高清免费| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 午夜一区| 狠色婷婷久久一区二区三区_| 中文字幕制服诱惑| 亚洲国产欧美中文永久| 91路www| 91AV入口| 97亚洲国产影视| 精品人妻15区| 日本午夜福利影院| 91劲爆| 高清一区AV无码| 国产农村妇女精品一| 9久久久久久| 一块操欧美性爱| 在线观看 99热| 国产精品盗摄 偷窥盗摄| 操人妻丝袜高跟| 78超碰| 成年女人18级毛片毛片免费观看| 97视频网站在线观看| 骚鸭AV| 骚货 中文字幕 av| 伊人久久综合影院精品久久久| 国产 三级自拍| 夜色97| 97超碰久久| 色综合美国| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 超碰成人人人爽人人爽| 999在线电影香蕉| 国产精品伦理| 99免费在线视频| 91色欧美| 日韩三级久久久| 高清孕妇孕交| 久久av网| ..日韩av毛片精品久久久| 四虎884a| 3d成人精品一区二区| 丝袜狂射91| 婷婷AV一区二区三区| 深夜激情| 欧美 中文字幕 一区| 黑人精品XXX一区一二区| 久久精品72| 手机在线中文字幕国产| 久久r精品| 九九色色| 亚洲欧洲av影音| 久久久久久波多野吉衣高潮| 综合免费无码中文| 一本色道久久综合精品婷婷| 嗯啊啊啊轻点视频| 91久久久久久久| 2025年A片视频精品| 激情久久久| 欧美宗合网| 欧美精品在线观看| 亚洲色系另类精品国产| 人人操人人精品影片| 亚洲av无码成人精品国产| 男人天堂2030| 亚洲日韩青青草色月| 欧美顶级黄色大片免费| 久久精品久久久久久久| 屌妞视频久久久久久久| 亚洲精品日韩国产欧美| 极品销魂美女一区二区 | 日本三级中国三级99人妇网站| 91在线视频国产网站| 97超碰资源网| 99色在线| 一区二区三区黄片免费观看| 亚洲日韩美女丝袜美腿人妻视频| 97超碰巨乳| 五月婷婷六月丁香| 日本三级一区二区 在线 | 久久爽爽精品| 色婷婷99| 欧美人妻精品一区二区| 97免费在线视频| 国产中午字一暮区| 亚射在线| 99无码视频| 超碰在线香蕉| 翔田千里AV无码秘 三区| 蜜乳av一区二区三区四区不卡| 五月婷婷五月天| 精品高清一区二区三区三州| 啊啊啊啊啊啊在线观看| 免费男人的天堂| 久久中日麻豆| 欧美色偷拍| 亚洲中文字幕三级在线| 最新三级网址| 日韩无码视频黄色| 亚洲成人在线高清| 操人91| 日本性感人妻91| 大香蕉淫人| 欧美亚州手机在线| 操逼A∨| 密臀在线一区尤物| 欧美色图小说综合| 成人一区二区三区四区| 亚洲熟女乱色| 超碰久久性爱| 人妻久久久久久久久久久久久久久 | 97视频在线免费看| 五月综合视频| 激情综合久久| 欧美刺激色黄片免费看| 免费一级特黄特色大片在线观看看| 一级毛片电影免费看| 91综合网在线| 少妇淫妇久久久久久久| 亚洲少妇综合| 人人操超碰在线| 日韩精彩视频| 日韩不卡一二三四| 97超碰总站| 日韩大香蕉精品在线视频| 淫乱图区 | 97亚洲欧美日韩| 91美女在线视频| 欧美 传媒 麻豆 日韩 偷拍| 2025亚洲男人天堂| 久久av色| 日日橹狠狠爱欧美超碰| 国产美女91视频| 亚洲美女30b| 人人摸人人干| 欧美色图成人网一区二区 | 一区二区激情国产熟女| 嗯嗯啊在线视频| 日韩人妻资源网| 美女啊啊啊啊pc| 日韩二级| 久热久操| 久久、1234| 狠狠操狠狠爱| 婷婷久月| 美女被啪到深处抽搐视频| 秋霞网无码| 日本一线产区和二线产区伦理片| 综合亚州欧美| 亚洲情色图片区| 国产成人主播| 夜夜夜夜爽| 91 偷| 呦呦一区| 国产精品爽爽v| 欧美日韩国内不卡| www.久久| 日欧美色| 俺也射| 久久久久久综合久久伊人蜜月| 网友自拍第一页| 欧洲亚洲国产综合在线| 乱伦av国产| 97人妻碰碰中文无码久热丝袜| 无码免费一区二区三区啪啪| 日日橹狠狠爱欧美超碰| 国产丝袜一区二区三区| 欧美少妇色图| 日韩精品一区二区日韩| 色婷婷五月综合| 久偷拍| 97欧美日韩精品| 欧美色www亚洲国产阿娇要播| 日日摸夜夜夜夜爽| 午夜精品久久久久久久男人的天堂| 一区二区三区四区姦女| 超碰久草| 牛牛操视频逼| 色婷五月| 淫色网综合| 无码精品人妻一区二区三区妖精| 日韩成人小视频| 国产欧美在线观看免费观看| 亚洲精品97中文字幕| 国内一级精品| 国产日韩在线播放av| 在线只有精品| 超碰97久久国| 人人摸人人入| 日韩av乱伦| 色偷偷色偷偷欧美日韩| 亚洲熟女av中文字幕| 欧洲自拍第一页| 91九色丨风韵犹存| 九九无码视频| 日韩一级二级在线| 97超碰伊人| 亚洲欧美精品国产一区二区| 日本色色色| 熟女高潮合集-永久久久-成人AV| 美女久久久| 国模无码一区二区三区在线| 欧美高潮在线| 亚洲久9| 欧美日韩操逼嗦吊| 国产乱码精品久久久久久| 男人的天堂2019| 九九色精品| 综合97久久| 国产精品女生av| 日本天堂网| 9118禁| 五月天色色色| 全国男人天堂网| h无码动漫在线观看| 久久中出在线| 日本韩国国产精品一区| 天天添天天干电影| 丝袜AV一区二区三区| 丁香五月天激情网站| 亚洲清纯唯美| 亚洲AV无码黄色强奸| 97爱b| 中文字幕在线观看永久| 99综合自拍| 亚洲国产成人精品999| av在线人气| 人妻精品视频一区二区三区| 天天综合精品| 97超碰久久| 亚洲精品久| 欧美超碰97| 爆乳免费黄网站| 精品无码久久久久久久杏吧| 男女打扑克高清网站| 午夜性刺激视频免费观看| 麻豆天美国美国产| 91狠狠综| yazhousetuoumei| 国产精品一区二区久久精品| 夜夜国产一区| 十八禁的黄污污免费网站| 色偷偷人人玩人人舔人人操人人摸人人爽| 日韩国产在线观看av| 久久久久久少妇| 四虎影院成年人片| 国产一区二区精品久久久不卡蜜臀| 欧美成人午夜免费福利785| 精品人妻视频一区二区在线播放 | 麻豆天美在线| 国产欧美第五页| 思思热国产高清| 日韩成人午夜精品久久高潮| 日韩人妻一二三区视频| 亚洲文学偷乱拍啪啪啪啪| av资源在线观看少妇| 天堂男人网| 色婷婷综合久久久久中文一区二区| se吧提供国产乱老熟视频胖女人| 久久爱超碰网| 精品超碰国产| 免费精品无码一级毛片牛牛影视| 97精品久久久久久久| 夜嗨影院| 国产精品扒开腿做爽爽爽视频| 麻豆黄四叶草网站| Blackedraw视频一区二区| 欧美丝袜91| 精品人妻夜夜草| 夜嗨影院| 97免费在线| 麻豆成人av| 九九伊人网| 69XX一中文字幕人妻91| 97jingpin| 亚洲情色91| 国产 日韩 欧美高清 | 热热热热日日漂亮永久永久国产日| 91小视频| 中文字幕一区二区视频在线观看 | 色噜噜国产在线| 国产成人一级av88| 伊人网高清| 九九国产热| 精品久久久久久亚洲| 天天操人人操狠狠插| 激情综合 婷婷五月 红杏| 国产青视频| 欧美国产日韩清纯唯美| 奇米狠999| 极品国产内射| 黄页网站成人免费| 青青草色情网站视频| 五月婷在线| 96久久久精品| 久久久蜜桃一区二区三区| 日本操大逼| 国产精品美女久久久久久网站| 天天操熟妇| 91性高| 精品亚洲国产成人精品| 精品人妻一二三| 丝袜美腿校园春色| 精品精品精品| 国产一区二区欧美日本| 人妻9117c| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 中文字幕97色| ,成人免费啪啪视频| 91美女精品| 999 久久久| 成人久久久| 亚洲精品97久久中文字幕| 天堂精品小草| 四虎永久在线精品免费网址 | 日韩精品在线放| 91日韩国产欧美亚洲另类精盘州至城都 | 精品国产人成在线| 91福利网在线观看| 夜夜爽夜夜爽| 青草精品视频日本久久久久网站在线| 国产精品毛片| 色拍偷亚洲| 欧美亚洲se91| 伊人久久大香线综合无码| 丝袜熟女2P| 猛交交| 日韩一区二区精品视频| 柠檬AV导航| 精品区国产区一区二区三区| 岛国黄色短视频| 成人性爱av| 无码外流操逼视频| 无码外流操逼视频| 怡春苑东京热| 日本一二三高清| 精品人妻一区二区免费蜜桃| 九九久久首页| 国产免费大片| 91欧美长吊| 99国产精品久久久久久久成人热| 国产性感在线观看| 色天使大香蕉| 国产精品视频| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 亚洲欧美自拍偷拍| 亚洲一欧洲中文字幕在线 | 国产精品直播在线观看直播| 自拍内地三级在线观看| 日小BB小视频| 亚乱色| 五月天色色网站| 人人操av| 97九色| AⅤ片水多多| 天天看天天在线精品| 91成人久久| 亚洲成人免费在线| 国产亚洲人妻综合日韩 久久| 97久精品| 性性欧美| 亚洲日韩狠狠撸视频| 亚欧美综合网| 国产成人超碰在线| 插穴性爱视频在线观看| 国产激情在线观看| 亚洲日韩一区电影| 嗯嗯啊啊用力视频免费| 国产欧美日韩臀| 综合一区二区影视| 国产欧美另类久久久精品课程| 91老熟女视频| 欧美性爱日韩性爱| 色噜噜综合网| 天天干2019| 日韩精品大香蕉伊人在线| 国产熟码AV| 97香蕉网| japan日本高清乱xxxx| 激情五月综合| 国产天天看| 啊啊在线| 日韩 国产 欧美自拍| 国产欧美日韩精品中文| 长长久久曰曰夜夜成人网| 欧美色图片91| 一区二区亚州激情久婷婷欧美| 97超碰欧美手机| 欧美国产精品| 激情丁香五月| a片亚洲一本通视频| 久午视频| 无码逼| 暖暖精品二区三区观看| 国产麻豆一区二三区| 大香蕉综合网| 围产精品一区二区三区视频播放| 精品欧美乱码久| 黄色一区二区秘书性感| 97久久久久久久精| 影音资源男人日韩| 一道α片欧美| 伊人AAA| 九九av| 日本国产欧美一区三区二区| 亚洲av影院在线观看| 日韩99999色| 日韩BBN| 黄色在线网站| 台湾佬中文娱乐自偷自拍| 人妻蜜桃臀| 51国产午夜精品视频| 深爱五月婷婷| 天天综合网亚洲综合网| 51久久夜色精品国产麻豆| 天天操夜夜操| 精品人妻一区二区蜜桃视频| 人人妻人人爽 97人人看碰人免费公开视频 | 欧美丝袜中文字幕07在线| 性影在线视频| 射欧美综合| 蜜臀久久99精品久久久久久无删减 | 成人免费看吃奶视频网站| 亚洲中文字幕噜噜噜久久久| 一本大道久| 国产极品美女高潮无套在线观看| 在线视频一区二区传媒| 少妇久久久久久| 激情综合网激情五月天| 伊人在线大香蕉视频久久| 91人妻最真实刺激绿帽| 91最新综合| 久久精品视频久久久| 日韩91网站| 大香网伊人久久综合| av草草在线电影| 在线欧美69V免费观看视频| 射欧美综合| 91被操| 2025亚洲男人天堂| 欧美影院一区二区三区| 91狠| 91人妻少妇| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 五月激情天| 果冻传媒A片麻豆熟妇人妻| 色九区| 玖玖久久久| 中亚精品极乱| 91色综合| 人人操天天爽| 欧美人人曰人人操人人射射| 69人妻精品丰满熟女区| 秋霞一级A片黄色视频| 日日夜夜草草草| 久久精品日韩| 中字一区| 国产精品久久久久av| 四虎精品永久在线观看| 五月丁香综合激情| 亚洲丝袜诱惑| 人妻精品综合中文字幕在线 | 日韩不卡av一二三| 午夜美女诱惑电源网| 黄污污污污| 亚洲综合电影| 你草精品在线视频| 操逼1区| 欲综合网| 91爱综合| 操逼免费视频无码国产| 果冻传媒一区二区三区| 伊人99热| V A在线| 做爱福利视频一区二区| 囯产乱伦一区二区三女| 亚洲高清综合网| 9色国产精品一区粉嫩| 天美欧美国产| 亚洲aV无码成人在线观看| 97精品在线视频| 综合干干干av久久久综合网 | 91久久久亚洲| 精品九九淫乱男| 97人人超| 強姦亂倫a| 国产精品久久久久久久久久二区三区| 99视频内射三四| 四虎国产精品永久入口| www.av不卡中文字幕| 夜夜一区二区| 一类无码操逼视频| 人妻久久| 先锋音影AV| 五月婷婷无码| 操逼天美3区| 美女性91| 人妻人妻天天碰| 亚洲男人的天堂亚洲| 嫩呦国产一区二区三区AV| 麻豆天天躁天天揉揉AV| 91久久午夜无码鲁丝片久久人妻| 另类 日韩 熟女| V A在线| 蜜桃臀久久| 日韩AV色图| 日韩中文字幕二区| 东京热视频网| 大香蕉中文网| 九九九九九九九九九五码| 五月丁香影视| 男人a天堂手机在线版| 精品视频在线观看| 成人夜夜| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 国产精品99精品视频网站| 狠久久| 欧美日韩人妻婷婷一区| 久久久久久久久久久久久久久性生活视频| 十八岁啪啪视频免费看| 中文字幕一区二区视频在线观看| 欧美黑人日韩少妇色情| 色噜噜人妻丝袜AV资源| 青青草日韩无码| 岛国艾薇凹凸视频天堂| 蜜乳视频网站| 91久久久久久久久18| 夜夜骑日日| 成熟熟女国产精品一区二区| 不卡人妻少妇精品毛片一区23区视频| 色99视频| 亚洲一本大道中文字幕无码在线| 亚洲色图尤物视频| 一区在线精品中文字幕| 久夜操| 后入式999| 日本久久999| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 久久不卡一区二区 | 免费看久久久性性| 2019天天干天天操| 日韩精品在线视频在线观看| 91久久青青草原精品| 久久中文字幕在线观看| 久热精品在线| 中日韩久久久免费看| 91美女視頻| 加勒比久久综合网高清| 国产亚洲精品久久久久小| 日韩免费a级毛片无码a∨| 黄骗免费网站| 中文字幕精品码亚洲| 九九九999久久久网站| 在线啊啊啊| 91久热| 91N综合网| 欧美午夜熟妇黑人精品91| 热G综合热G中文| 久精品无码av一区二免费国产在线观看| 国产97在线播放| 熟妇高潮二区三区| 中文字幕精品三级久久久| 欧美熟妇亚洲版| 亚码人妻| 狠狠爱夜夜干| 亚洲一二三四区在线免费看视频 | 一二三四免费视频| 激情五月综合网| 久久极品一区二区| 91狠狠综合久久久久久| 久久欧美1卡2卡3| 人妻夜夜爽天天爽麻豆三区网站 | 婷婷香网站| 呦女网站| 在线洲亚线| 国产一区在线播放| 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 乱伦一二三| 日本1区2区不卡视频| 激情抓乳插进去啪啪啪日韩 | 综合网久久| 久久人妇| 欧美色图99| 大香久久| 一起草三级AV电影在线观看| 精品久久无码午夜福利| 能在线播放的国产三级| 欧美激情中文字幕另类小说| 色综合九九| AV天天综合| 欧美色图 人妻| 99热线麻豆| 啊啊啊好多水| 欧美亚洲素人制服精品| 亚洲精品一区二区三区在线播放| 中文字幕一区二区三区视频播放| 亚洲日韩AV视色| 久久久久久91香蕉国产| 日韩八十路老熟女| 伊人91| 亚洲无码成人精品| 日本操BAV| 欧美亚洲国内自拍| 日韩不卡码| 久久日韩肥臀| 大香蕉免费3| 九九无码视频| 嗯嗯啊啊亚欧精品| 亚洲人综合|