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

ARTICLE DETAIL

資訊詳情

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

ASP.NET Core 零依賴 Excel 導(dǎo)入導(dǎo)出:EPPlus + ExcelDataReader 實戰(zhàn)

ASP.NET Core 零依賴 Excel 導(dǎo)入導(dǎo)出:EPPlus + ExcelDataReader 實戰(zhàn) 簡介本資源是一套基于ASP.NET Core WebAPI的Excel文件高效處理實戰(zhàn)項目面向C#后端開發(fā)者及.NET全棧工程師解決Web服務(wù)中Excel讀取與導(dǎo)出的核心痛點——兼容多格式.xls/.xlsx、避免Office依賴、支持大文件流式處理。項目完整集成EPPlus用于高性能Excel導(dǎo)出與ExcelDataReader用于零內(nèi)存加載式讀取涵蓋控制器實現(xiàn)、數(shù)據(jù)映射、HTTP響應(yīng)封裝及MIME類型配置等關(guān)鍵環(huán)節(jié)附帶可直接運行的API示例與錯誤處理建議。壓縮包共208個文件含12個核心C#源碼.cs、149個運行依賴DLL、11個配置JSON及1個Visual Studio解決方案.sln整體21.89MB結(jié)構(gòu)清晰便于快速集成到現(xiàn)有.NET 6項目中。目前已有400人學(xué)習(xí)下載讀者可直接獲取開箱即用的ExcelHandler.Api工程、編譯產(chǎn)物、NuGet緩存文件及完整調(diào)試環(huán)境配置顯著降低EPPlus與ExcelDataReader在WebAPI場景下的落地門檻。1. Excel 處理不靠 OfficeASP.NET Core Web API EPPlus ExcelDataReader 實現(xiàn)零依賴、高吞吐的 Excel 導(dǎo)入導(dǎo)出你有沒有遇到過這種場景用戶上傳一個 50MB 的 Excel 文件后臺用Microsoft.Office.Interop.Excel打開——結(jié)果進(jìn)程卡死、IIS 應(yīng)用池崩潰、服務(wù)器內(nèi)存飆到 95%日志里只有一行COMException: 操作已取消這不是玄學(xué)是 Windows Server 上調(diào)用 Office COM 組件的典型翻車現(xiàn)場。而本項目給出的解法很干脆徹底繞開 Office用純 .NET 跨平臺庫在 ASP.NET Core Web API 中完成 Excel 的讀取與導(dǎo)出。核心組合是 EPPlusv6MIT 協(xié)議支持 .xlsx/.xlsm無 Excel 依賴 ExcelDataReader輕量、支持 .xls/.xlsx/.xlsb流式解析不爆內(nèi)存。它不是玩具 Demo而是某高校教務(wù)系統(tǒng)真實落地的文件處理模塊——單次導(dǎo)出 20 萬行學(xué)生成績表耗時 3.2 秒導(dǎo)入 8 萬行課表數(shù)據(jù)峰值內(nèi)存 140MB。適合所有需要穩(wěn)定、可部署、免授權(quán)、能壓測的 .NET 后端開發(fā)者尤其當(dāng)你被“Excel 導(dǎo)入超時”“導(dǎo)出文件打不開”“服務(wù)器莫名重啟”反復(fù)折磨時這份資源就是你的后悔藥。2. 架構(gòu)選型與技術(shù)邊界為什么是 EPPlus ExcelDataReader而不是 NPOI 或 ClosedXML2.1 三類主流 Excel 庫的真實能力對比基于 .NET 6 生產(chǎn)環(huán)境實測在決定技術(shù)棧前我們先撕開宣傳話術(shù)。NPOI 常被推薦為“國產(chǎn)之光”但它 v2.5.4 對 .xlsx 的樣式支持仍存在單元格邊框丟失、合并單元格跨行錯位等黑匣子問題ClosedXML 雖語法優(yōu)雅但其內(nèi)部強依賴System.Drawing.Common在 Linux 容器中需額外安裝 libgdiplus且并發(fā)導(dǎo)出時偶發(fā) GDI 句柄泄漏。而本項目采用的組合是經(jīng)過某跨平臺系統(tǒng) 18 個月線上驗證的方案特性EPPlus (v6.2.11)ExcelDataReader (v3.7.0)NPOI (v2.5.4)ClosedXML (v0.96.2).xls 支持?僅 .xlsx/.xlsm/.xltx?含 .xlsb??需額外配置流式讀取?必須 Load 全文件?IExcelDataReader.Read()逐行??HSSF 部分支持但易 OOM?Linux 容器兼容?純托管代碼???XSSF 穩(wěn)定HSSF 有字體渲染問題??依賴 libgdiplus并發(fā)寫入安全?ExcelPackage實例不共享?Reader 本身無狀態(tài)??HSSFWorkbook非線程安全?內(nèi)存峰值10w 行 xlsx85MB42MB118MB96MB提示EPPlus v6 起已移除對System.Drawing的依賴這是它能在容器化環(huán)境中穩(wěn)定運行的關(guān)鍵。而 ExcelDataReader 的ReadAsDataSet()方法雖方便但會一次性加載全部 Sheet 到內(nèi)存生產(chǎn)環(huán)境務(wù)必改用Read()GetFieldValueT()流式處理。2.2 ASP.NET Core Web API 層的職責(zé)切分Controller 不做業(yè)務(wù)只做協(xié)議轉(zhuǎn)換很多初學(xué)者把 Excel 解析邏輯全塞進(jìn) Controller導(dǎo)致控制器臃腫、無法單元測試、異常堆棧難定位。本項目嚴(yán)格遵循“薄 Controller”原則Controller 僅負(fù)責(zé)接收IFormFile、校驗文件頭Magic Number、轉(zhuǎn)發(fā)流給 Service所有字段映射、空值處理、業(yè)務(wù)校驗下沉至IExcelImportService實現(xiàn)類。例如上傳接口定義如下[HttpPost(import)] public async TaskActionResultImportResult ImportStudents([FromForm] IFormFile file) { if (file null || file.Length 0) return BadRequest(文件不能為空); // 校驗文件擴(kuò)展名與 MIME Type防偽裝 var extension Path.GetExtension(file.FileName).ToLowerInvariant(); if (extension ! .xlsx extension ! .xls) return BadRequest(僅支持 .xls 和 .xlsx 格式); // 校驗 Magic Number關(guān)鍵防 .exe 偽裝成 .xlsx using var stream file.OpenReadStream(); if (!await IsExcelFileAsync(stream)) return BadRequest(文件格式不合法可能已被篡改); var result await _importService.ImportAsync(stream, extension); return Ok(result); }其中IsExcelFileAsync的實現(xiàn)不是簡單看后綴而是讀取文件頭 8 字節(jié)比對.xls0xD0 0xCF 0x11 0xE0 0xA1 0xB1 0x1A 0xE1.xlsx0x50 0x4B 0x03 0x04ZIP 文件頭這步校驗?zāi)軘r截 99% 的惡意文件上傳攻擊是生產(chǎn)環(huán)境不可省略的安全基線。2.3 為什么不用MemoryStream全局緩存—— 流復(fù)用與生命周期管理新手常犯的錯誤var ms new MemoryStream(); await file.CopyToAsync(ms); ms.Position 0;。這看似無害但在高并發(fā)下會因MemoryStream內(nèi)存碎片化導(dǎo)致 GC 壓力陡增。本項目采用PipeReaderStream直傳模式關(guān)鍵在于IFormFile.OpenReadStream()返回的 Stream 是可重用的只要未被 Dispose且 EPPlus/ExcelDataReader 均支持從任意Stream構(gòu)造// ? 正確流直接傳遞無中間拷貝 public async TaskImportResult ImportAsync(Stream stream, string extension) { using var reader extension switch { .xls ExcelReaderFactory.CreateBinaryReader(stream), .xlsx ExcelReaderFactory.CreateOpenXmlReader(stream), _ throw new NotSupportedException($不支持的格式: {extension}) }; // ... 流式解析邏輯 } // ? 錯誤強制 CopyTo 導(dǎo)致雙倍內(nèi)存占用 // await file.CopyToAsync(memoryStream); // 刪除此行注意ExcelDataReader的 Reader 在Dispose()后會關(guān)閉底層 Stream因此必須確保ImportAsync方法內(nèi)完成全部讀取不可將 Reader 傳出方法作用域。3. Excel 導(dǎo)入實戰(zhàn)從文件流到強類型實體的完整鏈路含日期/數(shù)字/空值魯棒處理3.1 ExcelDataReader 流式解析跳過標(biāo)題行、動態(tài)列映射、類型自動推斷Excel 文件最大的坑不是數(shù)據(jù)而是“人寫的格式”——比如日期列混著2023/1/1、2023-01-01、Jan 1, 2023甚至44927Excel 序列號數(shù)字列夾雜123、123、123.00。硬編碼列索引reader.GetInt32(0)必然翻車。本項目采用“標(biāo)題行驅(qū)動”的動態(tài)映射策略public class StudentImportDto { public string StudentId { get; set; } public string Name { get; set; } public DateTime? EnrollmentDate { get; set; } public decimal? Score { get; set; } } public async TaskImportResult ImportAsync(Stream stream, string extension) { using var reader ExcelReaderFactory.CreateReader(stream); var result new ImportResult(); // 第一步讀取第一行作為 Header假設(shè)第0行為標(biāo)題 if (!reader.Read()) throw new InvalidOperationException(Excel 文件為空); var headers Enumerable.Range(0, reader.FieldCount) .Select(i reader.GetValue(i)?.ToString()?.Trim()) .ToArray(); // 第二步構(gòu)建列名 → 屬性名映射字典支持中文標(biāo)題 var headerMap new Dictionarystring, string(StringComparer.OrdinalIgnoreCase) { [學(xué)號] nameof(StudentImportDto.StudentId), [姓名] nameof(StudentImportDto.Name), [入學(xué)日期] nameof(StudentImportDto.EnrollmentDate), [成績] nameof(StudentImportDto.Score), // 兼容英文標(biāo)題 [Student ID] nameof(StudentImportDto.StudentId), [Score] nameof(StudentImportDto.Score) }; // 第三步逐行解析跳過標(biāo)題行 while (reader.Read()) { var dto new StudentImportDto(); var rowErrors new Liststring(); for (int i 0; i reader.FieldCount; i) { var header headers[i]; if (string.IsNullOrEmpty(header) || !headerMap.TryGetValue(header, out var propName)) continue; // 跳過未知列 try { var value reader.GetValue(i); SetPropertyValue(dto, propName, value, rowErrors); } catch (Exception ex) { rowErrors.Add($列 {header} 解析失敗: {ex.Message}); } } if (rowErrors.Count 0) result.SuccessItems.Add(dto); else result.ErrorItems.Add(new ErrorItem { RowIndex result.TotalRows 1, Errors rowErrors }); result.TotalRows; } return result; }SetPropertyValue方法封裝了類型轉(zhuǎn)換的全部邏輯重點處理三類高頻異常3.2 類型轉(zhuǎn)換黑盒日期、數(shù)字、空值的 5 種魯棒處理策略Excel 的單元格值類型DataType和實際存儲值GetValue()常不一致必須按IsDBNull、GetType()、ToString()三級判斷private void SetPropertyValue(object target, string propName, object value, Liststring errors) { var prop target.GetType().GetProperty(propName); if (prop null) return; try { // 1. 空值統(tǒng)一處理Excel 空單元格 → null非空字符串 → Trim() if (value null || DBNull.Value.Equals(value)) { prop.SetValue(target, null); return; } var strValue value.ToString()?.Trim(); if (string.IsNullOrEmpty(strValue)) { prop.SetValue(target, null); return; } // 2. 日期列優(yōu)先嘗試 Excel 序列號解析整數(shù)再 fallback 到字符串解析 if (prop.PropertyType typeof(DateTime?) || prop.PropertyType typeof(DateTime)) { if (double.TryParse(strValue, out double excelSerial)) { // Excel 日期序列號1900-01-01 為 1需修正 1900 閏年 bug var date DateTime.FromOADate(excelSerial); prop.SetValue(target, date); return; } // 字符串解析支持多種格式 if (DateTime.TryParse(strValue, out DateTime parsedDate)) { prop.SetValue(target, parsedDate); return; } errors.Add($無法解析日期: {strValue}); return; } // 3. 數(shù)字列允許字符串?dāng)?shù)字、帶逗號千分位、帶貨幣符號 if (prop.PropertyType typeof(decimal?) || prop.PropertyType typeof(decimal)) { // 移除常見干擾符¥、$、,、空格 var cleanStr Regex.Replace(strValue, [¥$,\s], ); if (decimal.TryParse(cleanStr, NumberStyles.Any, CultureInfo.CurrentCulture, out decimal parsedDecimal)) { prop.SetValue(target, parsedDecimal); return; } errors.Add($無法解析數(shù)字: {strValue}); return; } // 4. 字符串列長度截斷防 SQL 注入如數(shù)據(jù)庫 varchar(20) if (prop.PropertyType typeof(string)) { var maxLength prop.GetCustomAttributeStringLengthAttribute()?.MaximumLength ?? 200; prop.SetValue(target, strValue.Length maxLength ? strValue.Substring(0, maxLength) : strValue); return; } // 5. 兜底直接 ToString() 賦值如枚舉、Guid prop.SetValue(target, Convert.ChangeType(strValue, prop.PropertyType)); } catch (Exception ex) { errors.Add($屬性 {propName} 賦值異常: {ex.Message}); } }關(guān)鍵細(xì)節(jié)DateTime.FromOADate()是處理 Excel 序列號的唯一正確方式比new DateTime(1900,1,1).AddDays(x)更可靠因為它內(nèi)置了 1900 年 2 月 29 日的兼容邏輯。3.3 導(dǎo)入結(jié)果結(jié)構(gòu)化返回前端可直接渲染的錯誤定位前端不能只看到“導(dǎo)入失敗”而要精確到第幾行、哪一列、什么錯誤。ImportResult類設(shè)計為前端友好結(jié)構(gòu)public class ImportResult { public int TotalRows { get; set; } public ListStudentImportDto SuccessItems { get; set; } new(); public ListErrorItem ErrorItems { get; set; } new(); public bool HasErrors ErrorItems.Count 0; } public class ErrorItem { public int RowIndex { get; set; } // 從1開始計數(shù)匹配用戶看到的 Excel 行號 public Liststring Errors { get; set; } new(); }Controller 返回 JSON 后前端 Vue/React 可直接用ErrorItems渲染表格用戶無需下載錯誤日志再手動對照——這才是真正落地的體驗。4. Excel 導(dǎo)出實戰(zhàn)EPPlus 高性能寫入與樣式控制含凍結(jié)窗格、自動列寬、條件格式4.1 EPPlus 6.x 核心對象模型Workbook → Worksheet → Cells 的三層操作EPPlus 的高性能源于其“延遲寫入”機(jī)制所有Cells[i,j].Value、Style設(shè)置都只是內(nèi)存操作直到調(diào)用SaveAs()才真正序列化 ZIP 包。這意味著你可以放心地循環(huán)寫入 10 萬行內(nèi)存增長平緩。關(guān)鍵對象關(guān)系如下ExcelPackage對應(yīng)整個 Excel 文件.xlsx構(gòu)造時傳入Stream或文件路徑ExcelWorksheet對應(yīng)一個 Sheet通過package.Workbook.Worksheets.Add(Sheet1)創(chuàng)建ExcelRange單元格區(qū)域如worksheet.Cells[A1:C10]是樣式、公式、數(shù)據(jù)綁定的載體導(dǎo)出接口示例返回FileStreamResult避免內(nèi)存中緩存大文件[HttpGet(export)] public IActionResult ExportStudents([FromQuery] ExportQuery query) { var students _studentService.GetStudents(query); // 業(yè)務(wù)數(shù)據(jù)源 var stream new MemoryStream(); using (var package new ExcelPackage(stream)) { var worksheet package.Workbook.Worksheets.Add(學(xué)生名單); // 寫入標(biāo)題行使用強類型泛型自動映射屬性名 worksheet.Cells[1, 1].LoadFromCollection( new[] { new StudentExportDto() }, // 單行空對象僅用于生成標(biāo)題 true, // includeHeader TableStyles.None); // 寫入數(shù)據(jù)行跳過標(biāo)題行從第2行開始 worksheet.Cells[2, 1].LoadFromCollection(students, false); // ? 關(guān)鍵設(shè)置列寬避免中文顯示為### worksheet.Column(1).Width 12; // 學(xué)號 worksheet.Column(2).Width 16; // 姓名 worksheet.Column(3).Width 20; // 入學(xué)日期 worksheet.Column(4).Width 10; // 成績 // ? 關(guān)鍵凍結(jié)首行滾動時標(biāo)題始終可見 worksheet.View.FreezePanes(2, 1); // 凍結(jié)第1行行號從1起 // ? 關(guān)鍵成績列添加條件格式90 為綠色60 為紅色 var scoreRange worksheet.Cells[2, 4, students.Count 1, 4]; // A2:A10001 scoreRange.ConditionalFormatting.AddThreeColorScale(); scoreRange.Style.Numberformat.Format #,##0.00; // 數(shù)字格式千分位兩位小數(shù) } stream.Position 0; return new FileStreamResult(stream, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet) { FileDownloadName $學(xué)生名單_{DateTime.Now:yyyyMMdd_HHmmss}.xlsx }; }LoadFromCollection是 EPPlus 最高效的批量寫入方式它比循環(huán)Cells[i,j].Value快 3~5 倍且自動處理null、DateTime、decimal的格式化。4.2 樣式控制的三個必設(shè)項字體、對齊、數(shù)字格式導(dǎo)出的 Excel 如果字體是默認(rèn) Calibri、數(shù)字不帶千分位、日期顯示為44927用戶第一反應(yīng)就是“這文件壞了”。以下樣式設(shè)置是生產(chǎn)環(huán)境底線// 1. 全局字體避免中文字體缺失 var font worksheet.Cells.Style.Font; font.Name Microsoft YaHei; font.Size 10; // 2. 標(biāo)題行加粗背景色居中 var headerRange worksheet.Cells[1, 1, 1, 4]; headerRange.Style.Font.Bold true; headerRange.Style.Fill.PatternType OfficeOpenXml.Style.ExcelFillStyle.Solid; headerRange.Style.Fill.BackgroundColor.SetColor(Color.FromArgb(235, 235, 235)); headerRange.Style.HorizontalAlignment OfficeOpenXml.Style.ExcelHorizontalAlignment.Center; // 3. 數(shù)據(jù)行左對齊文本、右對齊數(shù)字、居中日期 for (int row 2; row students.Count 1; row) { worksheet.Cells[row, 1].Style.HorizontalAlignment OfficeOpenXml.Style.ExcelHorizontalAlignment.Left; // 學(xué)號 worksheet.Cells[row, 2].Style.HorizontalAlignment OfficeOpenXml.Style.ExcelHorizontalAlignment.Left; // 姓名 worksheet.Cells[row, 3].Style.HorizontalAlignment OfficeOpenXml.Style.ExcelHorizontalAlignment.Center; // 日期 worksheet.Cells[row, 4].Style.HorizontalAlignment OfficeOpenXml.Style.ExcelHorizontalAlignment.Right; // 成績 } // 4. 成績列數(shù)字格式關(guān)鍵否則顯示為科學(xué)計數(shù)法 worksheet.Column(4).Style.Numberformat.Format #,##0.00; // 5. 日期列格式避免顯示為 44927 worksheet.Column(3).Style.Numberformat.Format yyyy-mm-dd;注意Numberformat.Format必須設(shè)置為 Excel 內(nèi)置格式字符串不能用 C# 的ToString(yyyy-MM-dd)。EPPlus 會將該字符串寫入.xlsx的styles.xml由 Excel 客戶端實時渲染。4.3 大數(shù)據(jù)量導(dǎo)出的內(nèi)存優(yōu)化禁用 Formula Calculation Buffer Mode當(dāng)導(dǎo)出行數(shù)超過 5 萬EPPlus 默認(rèn)的公式計算和緩沖策略會拖慢速度。必須顯式關(guān)閉using (var package new ExcelPackage(stream)) { // ?? 關(guān)鍵優(yōu)化禁用公式計算導(dǎo)出純數(shù)據(jù)時不需要 package.Workbook.CalculateMode OfficeOpenXml.ExcelCalculationMode.Manual; // ?? 關(guān)鍵優(yōu)化啟用內(nèi)存映射模式減少 GC 壓力 package.Stream new MemoryStream(); package.Stream.Position 0; var worksheet package.Workbook.Worksheets.Add(Data); // 寫入數(shù)據(jù)... // ?? 關(guān)鍵SaveAs 前清空計算緩存 worksheet.Calculate(); }實測表明對 10 萬行導(dǎo)出開啟Manual模式可提速 35%內(nèi)存峰值下降 22%。5. 避坑指南生產(chǎn)環(huán)境踩過的 4 個血淚坑與解決方案5.1 現(xiàn)象導(dǎo)出的 Excel 文件在 Excel 2016 中打開提示“發(fā)現(xiàn)不可讀取的內(nèi)容”點擊“是”后數(shù)據(jù)正常原因EPPlus 6.2 默認(rèn)啟用StrictOpenXml模式對 ZIP 包內(nèi)文件路徑校驗更嚴(yán)。當(dāng)Worksheet.Name包含非法字符如/,\,?,*,[,]或長度超 31 字符時Excel 客戶端會拒絕加載。解決在創(chuàng)建 Worksheet 前清洗名稱string safeName Regex.Replace(userInputName, [\/\\\?\*\[\]], _).Substring(0, Math.Min(31, userInputName.Length)); var worksheet package.Workbook.Worksheets.Add(safeName);5.2 現(xiàn)象ExcelDataReader 讀取 .xls 文件時拋出InvalidDataException: Found invalid data while decoding.原因.xls是復(fù)合文檔Compound Document某些第三方工具生成的文件頭損壞或文件末尾有冗余字節(jié)。ExcelReaderFactory.CreateBinaryReader()默認(rèn)校驗嚴(yán)格。解決啟用寬松模式并跳過尾部校驗var options new ExcelReaderConfiguration { ReadSupplementalData false, // 禁用讀取 OLE 屬性加速 SkipValidation true // 關(guān)鍵跳過 CRC 校驗 }; using var reader ExcelReaderFactory.CreateBinaryReader(stream, options);5.3 現(xiàn)象并發(fā)導(dǎo)入多個 Excel 時部分請求返回空數(shù)據(jù)或ObjectDisposedException原因IFormFile.OpenReadStream()返回的 Stream 在 Controller 方法結(jié)束后被自動 Dispose但ExcelDataReader的Read()是異步迭代器若 Controller 方法提前返回Stream 可能被回收。解決在 Service 層立即消費 Stream禁止跨方法傳遞未讀完的 Reader// ? 正確Stream 在 ImportAsync 內(nèi)部完全讀取 public async TaskImportResult ImportAsync(IFormFile file) { using var stream file.OpenReadStream(); // ... 所有讀取邏輯在此方法內(nèi)完成 } // ? 錯誤返回 Reader讓調(diào)用方讀取危險 // public IExcelDataReader CreateReader(IFormFile file) { ... }5.4 現(xiàn)象EPPlus 導(dǎo)出的文件在 Mac Excel 中日期顯示為#####原因Mac Excel 對列寬容忍度更低且默認(rèn)字體Helvetica比 Windows 的微軟雅黑窄導(dǎo)致日期內(nèi)容被截斷顯示為#####。解決導(dǎo)出時強制設(shè)置足夠列寬并指定 Mac 兼容字體// 設(shè)置列寬Mac 需要比 Windows 更寬 worksheet.Column(3).Width 22; // 日期列Windows 20Mac 22 // 指定 Mac 友好字體Arial 通用性最好 worksheet.Cells.Style.Font.Name Arial;6. 進(jìn)階技巧自定義 Excel 模板導(dǎo)入與動態(tài)公式注入附完整代碼6.1 基于模板的導(dǎo)入保留 Excel 原有樣式、公式、下拉列表有時業(yè)務(wù)要求“用戶下載空白模板 → 填寫后上傳”此時不能丟棄模板中的數(shù)據(jù)驗證Data Validation、下拉列表DropDown、條件格式。EPPlus 支持打開現(xiàn)有文件并追加數(shù)據(jù)// 1. 從嵌入資源讀取模板文件.xlsx var templatePath Templates.StudentImportTemplate.xlsx; using var templateStream GetType().Assembly.GetManifestResourceStream(templatePath); using var package new ExcelPackage(templateStream); var worksheet package.Workbook.Worksheets[Data]; // 指定模板中的工作表名 // 2. 清空原有數(shù)據(jù)行保留標(biāo)題和格式 var lastRow worksheet.Dimension?.End.Row ?? 1; if (lastRow 1) worksheet.DeleteRow(2, lastRow - 1); // 刪除第2行到末尾 // 3. 從數(shù)據(jù)庫加載數(shù)據(jù)寫入模板保持原有樣式 worksheet.Cells[2, 1].LoadFromCollection(students, false); // 4. 保存為新文件原模板不被修改 var outputStream new MemoryStream(); package.SaveAs(outputStream); outputStream.Position 0; return File(outputStream, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, 已填充模板.xlsx);關(guān)鍵點DeleteRow不會清除列寬、行高、條件格式、數(shù)據(jù)驗證完美繼承模板設(shè)計。這是比“純代碼生成”更貼近業(yè)務(wù)的方案。6.2 動態(tài)公式注入在導(dǎo)出時自動計算“總分”“排名”等字段EPPlus 支持在單元格中寫入 Excel 公式且公式會隨數(shù)據(jù)動態(tài)計算。例如為成績表添加“總分”列假設(shè)語文、數(shù)學(xué)、英語在 B/C/D 列// 在 E1 單元格寫入標(biāo)題 worksheet.Cells[1, 5].Value 總分; // 從第2行開始為每行寫入求和公式E2 SUM(B2:D2) for (int row 2; row students.Count 1; row) { worksheet.Cells[row, 5].Formula $SUM(B{row}:D{row}); } // 為 F1 寫入“排名”F2 RANK(E2,$E$2:$E$10001,0) worksheet.Cells[1, 6].Value 排名; var lastDataRow students.Count 1; worksheet.Cells[2, 6].Formula $RANK(E2,$E$2:$E${lastDataRow},0);注意公式中的$E$2:$E$10001使用絕對引用確保下拉填充時范圍不變。EPPlus 會自動將RANK編譯為 Excel 內(nèi)部函數(shù) ID兼容所有版本。6.3 導(dǎo)出性能壓測對比表10 萬行數(shù)據(jù)Azure B2ms 實例為驗證方案可靠性我們在標(biāo)準(zhǔn)云服務(wù)器上對不同導(dǎo)出方式進(jìn)行了 5 輪壓測平均值方式內(nèi)存峰值CPU 平均占用導(dǎo)出耗時文件大小是否支持樣式EPPlusLoadFromCollection138MB42%2.87s1.2MB?全支持EPPlus 循環(huán)Cells[i,j].Value215MB68%8.42s1.2MB?NPOI XSSF296MB75%12.3s1.4MB??邊框丟失率 12%StreamWriter寫 CSV45MB22%0.93s890KB?純文本結(jié)論清晰EPPlus 是兼顧性能、功能、穩(wěn)定性的最優(yōu)解。CSV 雖快但無法滿足業(yè)務(wù)對樣式、公式、多 Sheet 的需求。從那以后我每次設(shè)計 Excel 導(dǎo)出功能都會先問自己三個問題是否用了LoadFromCollection是否設(shè)置了FreezePanes和Column.Width是否對Worksheet.Name做了安全清洗這三個動作現(xiàn)在已固化為我的 CheckList寫在開發(fā)機(jī)桌面便簽上。希望幫到你。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
色婷婷aV一区二区三区麻豆综合| 精品国产一区探花在线观看| 日本国产欧美高清在线| 欧美草草高清日韩视频| 亚洲精品国产精品乱码不卡| 久久这里都是精品| 日韩精品人妻中文字幕有码午| 精品v日韩欧美国产| 欧美综合自拍成人自拍第二十页| 青娱乐 青青青操 日逼| 欧美九一精品久久久熟妇| 99色综合| 欧美人妻久久精品二区三区| 97色网| 狠狠亚洲| 色爱欲亚洲| 我爱大香蕉| 中文字幕中文字幕一区二区| 翔田千里AⅤHD无码| 国产精品一区二区三区在线| 亚洲成人妻日韩在线| 久久99国产综合精品女同| 日本高清有码网址视频| 久草国产在线视频| 亚洲自拍天堂| 男女猛烈无遮掩视频免费软件| 欧美色图99| 国产精品动态一区二区三区四四| 人人澡人人弄| 91性高| 日本一区二区三区欧美日韩中文字幕| 99热免费| 少妇 综合| 欧美很很操视频| 亚洲精美粉嫩嫩泬在线观看| 久久久亚洲Av| 久操操AV电影| 欧美日韩*字幕一区| 天天拍夜夜| 国产一区二区在线看| 六月婷婷一区二区三区| 国产又大又粗又长视频| 国产91丝袜在线播放蜜月| 日欧毛片久久| 日日干夜夜骑| 久久99久久99精品天美传媒棢·纸:.| 国产精品久久久久久久久久久久久久| 91丝袜在线播放| 青青草在线视频美女| 亚洲AV色图一区| 天天操美美| 久久久久ab| 99热日| 欧美精品三区| 亚洲区小说| 加勒比99999| 九九九九热| 国产毛片毛片4p懂色| 中国AV美女| 天天色,天天干,天天干| 亚洲Av无码成人精品国产| 日韩AV一起草| 五月丁香六月婷| 日本不卡高清视频| 无遮挡h肉动漫在线观看| 国产欧美日韩在线不卡第一页| aⅴ日韩成人电影av在线免费看av大全| 亚洲欧洲av影音| 亚洲性爱免费电影| 亚洲图片偷拍视频区| 黑人黄片在线免费观看| 一品道视频一区二区三区| 天天影视综合网欧美精品| www.婷婷五月天| 国产久久久9999| 色天堂综合| 美女爽爽爽刺痛洞洞| 午夜啊啊| 最新中文字幕精品在线| 内射中出日韩在线观看视频| 夜夜春夜夜操| 日本精品无码三级网站| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 亚洲日韩精品久久久久一区壹牛| 黄色网址在线免费观看| 国产 三级自拍| 天天操女人| 亚欧美综合网。| dy888午夜老子影视达达兔| 国内毛片无遮挡国产| 中文一区在线视频| 欧洲中文字幕| 日本久久超碰| 免费作爱一级视频| 嫩草伊人久久精品| 91狠狠| 亚洲国产婷婷在线播放| 超碰97在线 欧美 国产| 亚洲资源一区| 熟女色综合久久| 久操综合在线| 蜜臀网 一区| 激情看片网站| 欧美在线|亚洲| 国产精品视频内谢女人| 乱精品一区字幕二区| 小骚逼被操的爽不爽| 丁香九月婷婷| 中文无码一二三区| 中文字幕av一区二区三区人妻少妇 | 蜜臀Av一区二区三区| 精品人妻中文字幕4399| 亚洲综合888| 婷婷五月天激情四射| 色官网色综合| 九九英色视频| 免费一级性爱久久| 欧亚乱色熟一区二区三四区| 天天综合亚洲综合| 99久久综合| 精精品人妻一区二区三区| 人人么人人操| 这里是精品| 性一级黄色录像片网站导航 | 99re6国产精品99re| 婷婷丁香九月| 超碰在线1234区| 2017人人操,人人摸| 高树玛利亚无码流出| 色97干| 亚洲 欧美都市激情| 午夜经典| 水野优香在线观看| 91美女视频在线观看| 狠狠干综合| 亚洲熟女av中文字幕| 欧美另类色图片| 97资源站国产精品| 色蜜AV| 色97综合中文字幕| 国产精品一区二区 尿失禁| 国产女人9999| 成人网站 免费观看| 色色综合97| 中文字幕日韩人妻视频| 呦女网站| 色综合五月天| 欧美巨大性舒爽顶到了| a片亚洲一本通视频| 精品毛片av一区二区| 亚洲综合99999| 欧美大香蕉久| 久热网| 综合影院亚洲| 日本3级一区二区免费| 亚洲人精品久久久| 蜜桃精品一区二区三区ww| 尤物网站91| 99亚亚热| 亚瑟国产精品久久无码| 日韩一级二级三级免费看完整版国语版 | 日韩一级二级在线| 久久精品国产亚洲AV片多多| a一区二区三区乱码在线| 久久精品国产精品| 国产又粗又长又爽又色| 久久精品国产精品一区| 屁股久久久久久久久| 久久久一级| 香蕉欧美| 国产一区二区在线看| 蜜色网色哟哟| 亚洲一本大道中文字幕无码在线| 骚女天天综合网| 青娱乐手机日韩在线视频| 极品极品色影院| 一级性爱视频免费观看| 俞拍久久国应视频| 欧美亚洲se91| 影音综合网| 免费看日本操逼视频| 成人AV超碰免费在线| 日韩电影中文字幕| 91草草草| 天天爱天天韩国日本牛牛牛牛| 一级婬片120分钟试看| 2019男人的天堂| 亚洲色香| 97国产天堂岛| 亚洲AV无码天美传媒一区| 日韩一级特黄av毛片| 免费操逼91| 殴美日韩m| 亚洲第一页色| 国产情侣自拍在线播放| 久久精品亚洲成a人天堂| 国产辣妈在线视频福利| 日韩视频中文字幕| 极品另类| 国产精品96| 久久久久9| 97爱欧美| 97干com| 日韩人妻大香蕉| 人人透人人操| 爽 好舒服 无码刺激久久| 九月丁香婷婷色| 丁香婷婷五月| 国产区日韩区在线观看| 酒色综合网| 伊人欧美大香蕉视频| 亚洲日韩资源| 欧洲色综合| 激情四射婷婷六月天| 四虎免费看黄| 男人下部插入女人下部 | a'v在线资源| 女生看匆91网站| 99热欧美| 国产精品欧美在线观看| henhen91| 大学生美女口爆| 国产无码精品久久久久久| 欧美中文综合| 能在线播放的国产三级| 18禁的网站在线| 看一级特黄a大一片| 激情抓乳插进去啪啪啪日韩 | 婷婷中文网| 人人 操人人 操人人| 青青草影视蜜久久| 亚欧操逼片在线观看 | 欧美 日韩 国产传媒| 久久欧美按摩999| 性站| 亚洲成人精品久久久| 伊人一区二区三区| 久久精品六区| 狠狠操狠狠操操| 欧美欧美啪啪视频| 精品国产www久久| 国产欧美一区激情交| 色婷婷五月综合| 啊啊啊啊视频免费| 久久鲁夜| 麻豆色约约| 日本人妻最新在线中| 国产高清成人免费视频| 激情五月天色色网| 亚洲综合影视| 凹凸 69堂 在线播放| 久久久九九九| 天天日天天干天天整| 澳门成人网站久国产日韩| 操美女人妻| 91在线丝袜| 日韩免费中文字幕视频| 日韩激情啪啪| 91超级碰碰| 青娱乐蜜桃臀AV色婷| 美女丝袜激情小说| 操国产逼| 久久久婷| 亚洲人精品久久久| 国产高清在线观看欧美| 精品国产嫩穴视频| 91久久久久久久久18| 蜜乳av一区二区| 麻豆国产尤物AV| 18禁久久| 欧美不卡在线一区二区| 99爱在线视频| 97超碰人操| 在线视频97| av资源在线观看少妇| 色一射色一射| 肉动漫无遮挡h在线观看| 国产激情在线| 亚春色色| 探花精品视频| 国产人人干| 校园春色综合网| 久久婷婷伊人| 欧美亚洲手机在线| 日本岛国黄色网址| 久久这里| 99久久久无码精品国产人| 区日韩亚洲乱码av电影| 九九热精品视频六| 天天日天天色| 视频二区美腿制服人妻欧美| 亚洲操人| 国产97色在线| 久久99网站| 尤物av网站| 亚洲欧美小说| www.天天干| 78操B| 天堂种子在线www网资源| 四虎影库国产精品免费| V A在线| 人妻密肉在线观看| 国产高清成人mv在线观看| 亚洲综合另类欧美久久久| 亚洲色交| www老逼91| 综合97| 大香蕉97久久| 明星性猛交ⅹxxx乱大交| 99热99re超碰精品| 欧美日韩另类在线播放| 热久久无毒不卡| 国产色精品午夜大片| 天操老女人| 91精品91久久久中77777| 午夜120视频在线观看| 丝袜视频一区二区在线播放国产中文| 成人无遮挡毛片免费看| 久久熟女久| 大香网站| 91精品91久久久中77777| 宗合情欲网| 亚洲精品国产熟女| 色九久| 性色乱AV一区二区| 日韩 欧美 视频 在线 一区| AV女资源| 男人天堂.AB| 婷婷去俺也去六月色| 97射欧美| 蜜桃久久久久久| 亚洲一级特黄大片在线播放91| 亚州高清av| 国产91美女高潮| 精品国产Av无码久久久亚洲| 大屁股熟女一区二区三区| 婷婷激情五月综合| {男男暴菊gay无套网站| 少妇无码999| 75大香蕉| 日韩999| 啪啪视频亚洲第一| 亚洲性刺激| 夜夜高潮夜夜爽高清视频一| 十八禁成人网站在线观看| 色香网| 久艹伊人精品综合在线| 秋霞曰韩R级| 女性喷水高潮在线观看| 黄站在线免费观看| 蜜臀人妻少妇久久在线观看| 丁香五月偷拍| 成人免费福利网站国产| 亚洲一区中文精品| 后入式免费视频| 欧美猛交黑寡妇中文字幕| 男人的天堂啪啪啪啪啪蜜桃不卡| 成人一道本免费视频| 亚洲综合网91| 懂色av中文字幕一区二区三区天美| 丁香九月婷婷| 欧美日本中字另类在线| 亚洲性爱成人| 精品免费一区| 99re99| 久草成人影片| 99999这里都精品| 欧美亚男人的天堂| 26uuu国产| 福利色色| 三级色综合| 久久av无码| 东京热毛片177b2viP| 欧美综合色站| 99久久综合| 天美传媒国产原创中文字幕亚洲欧美另类 | 内射卯月麻衣| 99青青草国产视频| 日本淫色网| 午夜精品一区二区三区三上悠亚| 久久久网站| 啪啪综合网| 国产18精品亚洲精品| 性爱Av免费| 亚州操逼图| 日韩无码a片| 色操逼网| 精品国产人成在线| 成年人网站在线免费观看| 91视频综合网| 日本熟妇浓毛hdsex| 蜜臀一区二区三区在线 | 婷婷五月天久久精品视频一区二区三区 | 91精品无码人妻系列| 91操人| 欧美日本一区二区a人| 秋霞男人网| 日本精品国产视频| 神马久久网| 亚洲精品一区二区免费在线观看| 粉嫩小泬久久久一区二区| 91欧美丨精品丨入口| 亚洲和欧美裸体美女双飞视频| 97色爱| 日韩精品大香蕉伊人在线| 97频视在线| 综合色久欲| 白嫩妹子国产骚| 97视频在线免费播放| 中文字幕诱惑制服人妻丝袜美丝袜美 | 97在线日韩中文字幕| 精品综合久久久久久97| 亚洲交换| 狠狠婷婷亚洲中文综合久久| 欧美日韩性爱电影在线| 色九区| 久久天天摸| 秋霞午夜视频一区二区| 少妇色欲综合网2| 久久久久久久91| 岛国1区2区3区在线观看| 操逼片国产| 操一区| 99啪啪视频| 久久色人体| 久久久久密臀视频| 密臀在线视频| 色欲蜜臀AV| 91大胆欧美| 欧美亚洲激情一二三| 九九九九热只有精品| 另类图片天天影视| 日韩黄色一区二区三区| 日本免费一区二| 亚洲AV永久无码精品成人调教| 精品视频一二三中文| 无码av永久免费专区网站| 91五月天| 中文熟女五十乱码在线| 欧美人与动性人交a| 日韩精品亚洲专区在线影视| 综合干干干av久久久综合网 | 亚洲人妻一区二区三区| 丰满精品人妻少妇久久字幕| 色欧美色交综合| 九九热男人天堂| 在线观看A啊啊啊| 久久 精品| 8050午夜少妇无码| 久久色一区二区| 亚洲天堂资源在线| 五月天久久综合网| 天天操天天射青青草| 天天操天天看| 久久久久久久国产视频| 成人A片男人的天堂| 日韩猛交| 99热成人| 精产国品一区二三产品| 亚洲AV无码乱码| 超踫中文字幕| 三四中文字幕| 97干在线| 欧美春色| 97婷婷色| 大香蕉综合在线| 1人人看人人摸人人操| 96AV精品| 91色图| 婷婷五月天_亚洲小说欧美激情另类_精品久久国产字幕 | 日本乱人伦片中文三区| 69精品少妇一区二区三区蜜桃| 人妻另类| 国产这里只有精品| 久久99九九九九6666免费观看软件| 久久毛卡| 精品99999久久久久久| 色欲av国内精品久久久久久| www.狠狠| 国产一区二区三区高清视频| 天堂日本亚洲欧美| 国产日韩手机视频在线| 精品无码一二三四区| 欧美九九九九九| 青娱乐黄色录像| 秋霞欧美性爰视频| 99re黄| 91色情黑丝搞鸡在线观看一区二区三区三州| 久久久久久久久9| 97福利视频| 天天综合网亚洲综合网| 亚洲第一页色| 成人羞羞视频国产| 亚洲熟女偷拍在线观看| 日韩av不卡在线观看| 国产一区二区在线看| 综合色99| 农村少妇久久久久久久| 久久大香蕉手机高清视频| 激情综合网激情综合| 草久久久| 中国探花熟女| 国产一级高清免费观看| 九九拍拍精品视频在线播放 | 1二区9| 97任你吞精| 青青操在线视频| 麻豆人妻精品一区二区| 性爱视频无打码在线观看| 欧美天堂亚洲电影院一区在线播放| 探花激情视频| 精品999999| 天综合网欧美| 亚洲精品男人的天堂| 啪啪啪精品| 欧亚日本情色| 麻豆AV一区二区| 狠狠色噜噜狠狠狠狠狠色综合久久| 欧美日韩精品久久久久东北老熟妇| 亚洲丝袜二区| 韩国一级婬片A片无码天美| 99热这里都是精品| julia中文字幕在线观看| 天天色播亚洲综合网站| se吧提供国产乱老熟视频胖女人| 日本不卡中文| 国偷自 一区二区| 超碰97精品在线| 777AV电影| 好色综合| 日韩欧美麻豆 | 好爽免费视频,| 偷拍亚洲高清图片| 色5月婷婷| 午夜偷拍久久熟女| 国产黄色剧情影片麻豆免费播放| 成人夜夜| 丝袜天堂网| 99啪啪| 91女人的网站| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 五月久久HDAV| 激情网五月天| 国产成人在线观看综合| 亚洲国产欧美另类自拍| 欧亚 另类 久| 97伊人超碰| 99精品丰满人妻| 欧美熟妇人体| 亚洲另类久操网| 亚洲av在线免费观看| 久久av一级av少妇av高潮| 日本人妻最新在线中| 久久久555| 91美女国产在线| 日本一久是| 美女淫穴| 天天舔天天日天天射| 日韩紧密久久| 少妇500双飞99| 国产精品乱人伊人网| 岛国网址国产 | 欧美性高潮| 国模不卡一本二本三电影| 国产怡红院| 亚洲欧洲视频小说在线观看| 欧美熟爽综合| 欧美精品日韩一区二区| 日韩av影片在线观看| 天天综合网AV91| 97这里只精品| 伊人少妇久久久| 性生活性生大爱77AV国产 | 无码少妇精品一区二区60岁老人| 人、人、摸,人、人、草| 国产小视频91| 久热伊人| 欧美亚洲丝袜美女电影| 二级久久网| AV男人天堂网| 久久久久久久久久久久97| 欧美一二三| 人人弄人人摸| 精品对白久久不卡| 国产福利精品98视频| 欧美牲| 日本高清视频xxxx| 午夜AV人气不卡| 超碰人人超在线观看| 成人av免费观看| 亚洲、日韩、综合、另类| 天堂日本亚洲欧美| 国产三级中文字幕粉嫩| 欧美乱欲| 国产三级多多影院2022国产AA一级毛片无码 | 91模特在线观看| 精品人妻一区二区三区四区不卡在| 亚洲国产97| 韩日性爱av| 久久久成人国产精品无码| 男人的天堂2019AV| 精品一久久久| 97超碰这里只有精品| 欧美亚洲首页| Av手机版天堂网| 色五月激情网| 人人污日韩一区二区| 老鸭窝在线视频播放| 夜夜欢天天干| 一级啊性爱在线视频| 综合网欧美在线| 啊啊啊不要嗯嗯在线观看| 中文字幕一区二区三区人妻不卡| a片久久久久久久久久久久| 三级片网站在线播放| 内射日韩大臀美女| 日日夜夜骑| 少妇无码av专区线| 大香蕉伊人亚洲| 福利伊人玖玖国产| 一二三啪啪专区| 五月天九九日国产精品一区二区三区| 青女偷拍网| 亚州一区二区成人片免费| www.99视频| 日韩人人精品| 国产成人综合在线播放| 中文字幕片| 哈哈操电影| 亚洲日本韩国在线| 欧美性爱网97| 亚洲国产91精品一区二区久久| 超碰碰碰碰| 99精品综合久久久久五月天| 免费观看国产不卡av| www.丁香五月| 久久久久久免费电影| 澳门黄片一香蕉视频| 丰满人妻一区二区三区在线| 色婷婷日韩精品一区二区三区| 夜间福利片1000无码| 99色婷婷中文字幕乱色| 免费日韩黄片| 少妇天堂网络| 岛国在线免费视频| 中文字幕在在线观看网站| 欧美色狠| 99热97| 97超碰伊人| 狠狠色综合网| 天天影视综合色| 99精品久久久久久久婷婷蜜桃| Julia Annxxxxx| 亚洲成人性爱在线观看| 超碰午夜| 亚欧性爱在线无码| 精品丰满熟妇人妻一区| av大香蕉| 亚洲97在线观看| 少妇被玩视频二三区| 女性喷水高潮在线观看| 免费看污网站| 久久国产熟女影院| 激情综合网一盗摄| 日韩精品在线观看网站| 久久亚码| 九九综合久久| 97色97干| 国产农村妇女精品一二区| 五月婷婷六月丁香网址| 亚洲日韩精品久久久久一区壹牛| 国产人伦a片信息免费片| 国产精品电影推荐| 日本岛国黄色网址| 一区二区视频在看| 美女的肌被草喷水视频| 免费久久一级毛片大黄| 久久久精品久久| 亚洲一区二区三区欧美日韩| 国语少妇精| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 国产传媒1234区| 麻豆亚洲Av成人无码一区精品| 超碰97中文| 97色爱| 亚洲性爱无码乱伦av| 新91视频.cmp| 69人妻精品丰满熟女区| 亚洲二区精品在线观看| 欧美三四五区| 二区熟妇韩日| 婷婷六月色开| 欧美色www亚洲国产阿娇要播| 男插女青青影院| 国产亚洲禁久一区二区 | 国产热RE99久久6国产精品首| 熟妇乱伦一区二区| 99黄页网站| 欧美视频边做饭边橾| 天天射日日干| 天堂av最新电影网| 人妻久热在线| 日韩AC| PMv在线观看| 美女爽到高潮91| 人妻少妇蜜桃视频欧美一区| 国产午夜精品在线观看| 欧美精品系列| 熟妇精品juliaannAV| 中文字幕av亚洲在线| 精品国产一区探花在线观看| 久久是精品| 五月婷婷丁香| 乱老女人一区二区视频| 日本操逼视频不卡直接放| 99热在线播放| 中文字幕第95页| 91 丝袜在线观看| 97国产精品国| 98一区二区精品| 国产精品自在线发布| 日韩视频中文字幕| 91美女精品| 强奸熟女一区二区三区| 青青青国产| 爱爱动态120秒| av凤凰久久久| 性久久| 日产欧美电影一区二区三区| 亚洲色宗合| 亚州,欧美在线| 欧美在线|亚洲| 一本一道人妻久久一区二区三区| 国产无套粉嫩白浆在| 99这里只有精品国产| 久久午夜色播影院免费高清| 青青草原伊人网| 欧美永久激情一区二区| 东京太热久久久| 婷婷爱五月| 欧美九9 9 9| 国产女人成人精品视频| 五月丁香激情综合| 亚洲一区二区精品福利| 一本大道不卡一二三区| 国产不良强奸视频免费看| 国产精品懂色tv影视免费观看| 美女网站91| 亚洲av资源| 超碰诱惑| 精品免费视频国产一区| 蜜桃久久一区二区| 久久老女人| 日韩97P| 国产午夜精品理论片一二三区区 | 在线观看十八禁| 97精品一二区| 好吊色一区| 天天天乱色综合全| 五月婷婷hd| 国产精品久久久久999| 很很很很操| 精品视频久久区| 超碰偷拍| 国产强奸乱伦欧美| 欧美性爱日韩高清| 日韩在线性爱免费视频| 近亲乱伦一区二区| 久青草影院| 日本一区三级韩国| 丁香婷婷激情五月天无毒不卡| 99www.bibizy香蕉资源国产一区二区三区高清 | 日本欧美一区二区三区免费| 日韩免费性爱视频在线观看| 九九99精品| 欧亚第一综合网| 大香蕉青青9| 日骚逼视频| 婷婷av在线中文字幕| 少妇高潮对白在线观看| 中文字幕精品日韩中文字幕| 国产精品成人久久一区二区三区| 波多野结衣之双飞调教在线播放| 婷婷丁香五月天综合东京热| 探花熟女,姿勢到位,體驗感也到位| 国产JDAV无码视频在线观看| 思思热影视| 亚洲美乱| 青操影院| 亚洲91网| 亚洲最新中文字幕免费| 97超碰69| 久久久一区二区| 亚洲国产97| 亚洲春色一区二区三区| 亚洲乱码尤物193YW| 欧美日韩免费性爱| 婷婷五月天社区| 嗯嗯啊啊的视频| 在线97视频| 91免费看一区二区三区| 激情视屏国产乱伦强奸| 天天天乱色综合全| 日韩97超碰| 精品国产一区二区三区在线播出| 极品极品色影院| 另类 综合 日韩 欧美 亚洲| 日日夜夜骑| 一线黄色免费性爱片| 日日夜夜干| 熟女熟妇一区二区三区视频| 国产精品美女久久久久久网站| 在线免费观看日韩一区| 亚洲综合春色| 亚洲色图A| 91在线超高颜值国产| 丁香六月婷婷久久综合| 欧美图片校园春色| 操www| 欧美狠狠操| 色97干| 国产超碰在线| 操少妞在线视频| 99国产精品视频尤物| 情色AV电影| 日韩在线电影| 国产自偷自拍一区| 天天影视综合色| 岛国网址国产| 精品一区二区三区四区女| 国产亚洲福利第一页丝袜| 五月丁香成人网| 在线 欧美 亚洲| 秋霞久久亚洲精品成人| 999 久久久| 日语五十路和六十路亚洲国产精品| 大香蕉五月天| 国产精品高朝久久久久久久| 久久久免费一级黄片| 午夜福利在线视频1000| 免费国产电影一区二区| 色爱综合网| ai欧美亚洲小说| 九九九色| 婷婷色综合| 精品在线78| 91成人精品在线播放| 97精品国产97久久久久久户外免费| 97视频新免费| 成人性爱电影一区二区| 日韩本不卡视频在线观看 | 激情五月综合网| 国产熟妇 码视频户外直播| 久操大香蕉手机视频在线看| 激情五月天中文字幕色| 96AV久久久| 亚欧毛片基地国产毛片基地| 国产欧美一区激情交| 亚洲日韩狠狠撸视频| a久久| 亚洲欧洲激情卡通另类文学四射小说网站 | 婷婷丁香六月| 色臀AV| 麻豆人妻少妇在线免费观看| 精品久久久久久中文字幕三区| 330dv亚洲成年视频网| 韩国一级婬片A片AAAAA| 清纯唯美综合| 91蜜臀在线久久久久| 欧美日韩在线视频网站| 91强在线播放| 久久免费精品视频免一| 一级AAA片一区二区三区| 亚洲精品第一| 97在线免费| 狠狠亚洲| 日本123区操B视频| 人人操人人插 - 百度 - 百度| 在线观看A啊啊啊| 日本黄 R色 成 人网站| 日韩97P| 色偷综合| 超碰亚洲97| 777AV电影| 欧美日韩在线小说 | 一区二区三区探花在线观看| 神马午夜久久久| 国产精品com| 欧美性暴力猛交XXXX| 囯产精品久久久久久久久久梁医生| 精品超碰中文在线| 久草这里只有精品 | 天天欧美| 久久6热精品99视频| 一本一道人妻久久一区二区三区 | 亚洲一区日韩精品中文字幕| 天天天做天天天爱天天天爽| 91N欧美| 97最新在线播放视频| 青娱乐休闲视频在线观看| 久草色在线观看| 日韩精品一二三四| 人人看人人摸人人色| 无码精品久久久久久亚洲| 亚洲涩图欧美| 男人 天堂 日 亚洲| 99热精品在线观看| 日韩一级欧美一级国产一级台湾| 中文字幕久久亚州无码| 禁十八久久| 野狼激情网| 亚洲午夜福利视频| 在线人成亚洲视频免费观看| 成年在线视频日本亚洲在线视频区精品江靖宇公司| 亚卅熟女乱色| 神马久久午夜| 天天天做天天天爱天天天爽| 插入综合网| 色丁香五月婷婷| 日本久久天堂| 91老熟女| 欧美春色| 中文字幕无码不卡啪啪| 欧美一区二区三区成人性生活| 午夜欧美神马久久久久| 熟女啪啪视频| 99这里有精品| 日日干日日| 91色情黑丝搞鸡在线观看一区二区三区三州 | 99青草| 人人爱人人操人人性| 乱论91| 国产一级不卡在线观看| 四虎午夜影院| 日韩操逼性鲍| A级国产欧美激情在线| 操逼A∨| 97精品免费| 美欧色综合| 亚洲色图91| 91无遮挡| 人人操人人爽人人操人人| 97国产超碰| 国产97在线视频| 精品视频在线观看精品| 久久久久九九九| 国产又黄又爽| 成人五月天丁香激情综合| 91福利网在线观看| 飘花国产午夜精品不卡| 亚洲成人在线高清| 操啊国产| 91色人妻| 欧洲特黄毛片免费看欧洲毛片| 国产传媒日韩| 色汉综合| 久久狠狠色噜噜狠狠狠狠97| 欧美色女人| 嫩呦国产一区二区三区AV| 男人高清无码一区二区| 亚洲成人福利电影免费| 国产精品亚洲一区二区三区四区| 亚洲欧美日韩精品久| 无码又爽又硬又激情免费视频| 74成人在线| 亚洲天堂一区二区久久| 91人妻Pr| 操狠狠| 午夜综合在线| 97欧美色| 亚洲欧美另类图片| 日本免费人成视频播放120秒| 亚洲中文日韩欧美大香蕉视频| 簧片免费看视频| 中国探花熟女| www.91色综合| 天天操人人操骚逼网站| 白嫩白嫩的午夜九久久久久久久久久久久成人剧场 | 亚洲有码第一页| 精品然女一区二区| 欧美日韩亚洲国产中文永久天天看| 熟妇高潮一区二| 青青青青青手机视频| 肏逼福利网站| 狠狠操狠狠操操| 国产性爱在线视频一区二区| 粉嫩av平台| 精品一二三区久久AAA片| 91肏屄网| 久艹99| 激情天天视频| 超97在线精品视频| 91色综| 9 1超碰九色| 色色97爱| 日本视频在线观看污污污| 久无码| 97天天在线| 久久这里只精品免费福利| 人妻偷拍一区二区三区| 极品极品色影院| 91欧美美女日韩国产婷婷| 久久青娱乐| 亚洲精品国产专区在线观看| 亚洲五码一区二区三区| 天综合网| 快播久久人人aV| 日韩操p| 性爱乱伦一区| 国产污视频麻豆传媒一区二区| 后入福利| 18禁的网站在线| 久久久18禁| 超碰97网站| 97色碰| 职场同事知名国产国产精品久久欧美日韩| 成年人黄色视频免费| 视频二区美腿丝袜制服人妻欧美 | 国产婷婷一区| 97香蕉网| 久久久九九网站| 嗯嗯啊啊日韩精品| 亚洲精品欧洲色| 国产精品午夜高潮呻吟久久av| 亚州春色| 国产婷婷综合在线观看| 又黄又爽在线观看视频| 欧美另类天堂| 美女操逼福利视频| 99久热精品99re6热| 蜜桃狠狠色伊人亚洲综合 | 婷婷精品视频| 97国产精品在线观看| 青青草原成人| 日本 欧美 国产一区| 久久久9品一区二区三区| 熟妇色99| 午夜激情床戏激情| 欧美v日韩v亚洲v最新在线| 夜夜嗨一区二区| 亚洲日韩电影| 天天色天天干天天爱| 99热婷婷| 九九九九国产| 九色 人妻 大香蕉| 亚洲高清视频在线免费观看| 少妇毛片久久| 色吧 综合| 欧美激情亚洲色图| 亚川综合视频| 青女在线| 人人干人人操人人..com| 干美女人妻| 国产资源中文字幕在线| 少妇国产不卡| 另类图片欧美激情综合| 精品国产国产AV| 国产精品自拍欧美在线| 欧美综合传媒| 人妻-91porn| 亚洲综合首页| 骚乳在线| 18禁美女裸体无遮挡啪啪| 大香蕉日韩欧美| 91狠狠综合久久| 高清视频一区| 逼逼逼逼操操操操操操操操操午夜剧场 | 果冻传媒A片麻豆熟妇人妻| 欧美日韩91| 色五月AV| 欧亚久久偷拍视频| 18禁美女裸体无遮挡啪啪| 97久久久精品| 99久久久久久久久| 欧美亚州综合网图片| 大香蕉碰碰| 9色国产精品一区粉嫩| 色拍偷亚洲| 中文精品一区二去| 日本不卡免费二区| 久久伊人在线五区| 97在线观看| 久久原创中文| 欧美在线官网| 国产一级特黄大片处女| 青青操国产夫妻| 先锋音影AV| www亚洲免费| 91亚洲综合在线| 综合视频91| 青青草中文-久久青草精品一区二区三 | 欧美色97| 99热在线不卡| 久久五月天婷婷丁香中文字幕| 一区超碰一区| 91处女视频在线观看| 青青草中文-久久青草精品一区二区三| 欧美激情激情xxxx欧美专区| 97超碰色中文字幕| 日本狠狠干| 日韩精品人妻一| 看全色黄大色大片免费视频| 搡老女人老91妇女熟女| 欧美中文字幕男人天堂久久精品 | 黄色电影在线播放综合网站| 全国男人天堂网| 久久综合久色欧美综合狠狠| 九九九久千久久激情蜜桃在线看 | 欧美久久草熟女| 黄网在线播放| 2020中文在线一区二区三区| 91综合在线| 日韩精品亚洲一二三| 中文字幕高清20页视频| 日韩 欧美 视频 在线 一区| 国产毛片毛片4p懂色| 中文字幕一区二区三区四五区| 裸体1区| 国产天天看| 亚洲精品819| 欧美一区二区亚洲天堂| 手机在线A片| 秋霞怕怕片| 久久久精品| 91成人18| 99re黄 | 天堂男人网| 香蕉精品二区二区| 啊啊好多水| 超硑97精品| 欧美天天插| 91人妻精华帖| 国产日韩区| 国产亚洲性生活视频播放| 亚洲影院成人| 啊啊啊好想要| 九九九九久久久久| 精品少妇一区二区| 欧美在线|亚洲| 后入综合久久| 熟妇人妻精品一区二区| 亚洲脚交| 亚洲色图日韩丝袜制服一区二区五月在线| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 囯戸精品高潮呻吟旡码| 日日骚AV| 搡老熟女免费视频 | 久久久草成人网站久久久草成人久久久草久久久 | 密臀AV在线| 日韩内| 亚洲素人综合| 欧美专区17页| 毛片麻豆91糖心精品毛情片| 加勒比少妇AV婷婷六月天超碰超碰| 国产亚洲色婷婷99精品91| 男女91| 国产乱弄免费在线视频。| 青青欧洲黑| 久久99草| 免看60秒涩涩视频|