使用 IRONXL 如何使用IronXL在C#中將GridView匯出為Excel XLSX。 Jordi Bardia 更新:2026年3月1日 下載 IronXL NuGet 下載 DLL 下載 開始免費試用 LLM副本 LLM副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在 Grok 中打開 向 Grok 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 將ASP.NET GridView 中的資料匯出到 Excel 文件 您可以透過安裝IronXL ,建立一個 WorkBook,遍歷 GridView 行,將每個儲存格值寫入對應的工作表位置,並將工作簿儲存到磁碟或 HTTP 回應流,從而在 C# 中將ASP.NET GridView 匯出到 Excel XLSX 檔案。 這種方法不需要在伺服器上安裝 Microsoft Office,並且可以在.NET Framework、 .NET Core和.NET 5 到.NET 10 Web 應用程式中可靠地運行。 在企業級ASP.NET Web Forms 專案中,將 GridView 資料匯出到 Excel 是一個標準需求。 使用者需要將表格資料從瀏覽器匯出到電子表格中,以便進行報告、離線分析和存檔。 挑戰在於彌合伺服器端 GridView 控制項與結構正確的 .xlsx 檔案之間的差距,而不引入在 Web 伺服器環境中會破壞的 Office Interop 依賴項。 本指南將逐步引導您了解三種更豐富的匯出模式:最小的逐行匯出、帶有列自動調整大小的標題加資料匯出,以及完全繞過渲染 HTML 的 DataTable 驅動匯出。 每個範例都使用與 C# 頂級語句相容的程式碼和IronXL API。 如何在ASP.NET專案中安裝IronXL ? 在 Visual Studio 中開啟程式包管理器控制台並執行: Install-Package IronXL dotnet add package IronXL Install-Package IronXL dotnet add package IronXL SHELL 或者,在解決方案資源管理器中以滑鼠右鍵按一下項目,選擇"管理NuGet套件" ,搜尋 IronXL,然後按一下"安裝" 。 NuGet會自動解析所有傳遞相依性。 安裝完軟體包後,請將以下 using 指令加入您的程式碼隱藏檔案: using System; using System.Data; using System.Web.UI; using IronXL; using System; using System.Data; using System.Web.UI; using IronXL; $vbLabelText $csharpLabel IronXL支援.NET Framework 4.6.2 及更高版本,以及.NET Core 3.1 和.NET 5 至.NET 10。伺服器上無需安裝 Office 或進行 COM 註冊。 完整的 API 文件可在IronXL物件參考中找到。 應該使用哪個NuGet套件 ID? 正確的套件 ID 是 IronXL(而非 IronXl.Excel,後者是舊別名)。 安裝完成後,程式集 IronXL.dll 將會自動引用。 您可以透過檢查解決方案資源管理器中的Packages節點或從專案目錄執行 dotnet list package 來驗證已安裝的版本。 IronXL能在ASP.NET Core Web 應用程式中運作嗎? 是的。 同一個 API 既適用於ASP.NET Web Forms 項目,也適用於ASP.NET Core (MVC 或Razor Pages)項目。 在核心專案中,建置伺服器端檔案路徑時,將 Server.MapPath 替換為 IWebHostEnvironment.WebRootPath 或 Path.Combine(Directory.GetCurrentDirectory(), "Exports")。 如何將 GridView 匯出到 Excel 檔案? 最簡單的匯出模式是遍歷 GridView 中渲染的每一行,並將每個儲存格的文字複製到對應的 Excel 工作表儲存格。 在 ASPX 標記中,新增一個 <asp:GridView ID="gvEmployees" runat="server" AutoGenerateColumns="true" /> 控制項和一個 <asp:Button ID="btnExport" runat="server" Text="Export to Excel" OnClick="btnExport_Click" /> 按鈕。 runat="server" 屬性使兩個控制項都可以在程式碼隱藏中存取。 後台程式碼在首次載入時綁定範例數據,並在按鈕點擊時匯出: using System; using System.Data; using System.Web.UI; using IronXL; public partial class GridViewExport : Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { BindGridView(); } } private void BindGridView() { DataTable dt = new DataTable(); dt.Columns.Add("EmployeeID", typeof(int)); dt.Columns.Add("Name", typeof(string)); dt.Columns.Add("Department", typeof(string)); dt.Columns.Add("Salary", typeof(decimal)); dt.Rows.Add(1, "John Smith", "Engineering", 75000); dt.Rows.Add(2, "Sarah Johnson", "Marketing", 65000); dt.Rows.Add(3, "Michael Chen", "Finance", 70000); ViewState["EmployeeData"] = dt; gvEmployees.DataSource = dt; gvEmployees.DataBind(); } protected void btnExport_Click(object sender, EventArgs e) { WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet worksheet = workbook.CreateWorkSheet("Employees"); // Write header row for (int j = 0; j < gvEmployees.HeaderRow.Cells.Count; j++) { worksheet.SetCellValue(0, j, gvEmployees.HeaderRow.Cells[j].Text); } // Write data rows for (int i = 0; i < gvEmployees.Rows.Count; i++) { for (int j = 0; j < gvEmployees.Rows[i].Cells.Count; j++) { worksheet.SetCellValue(i + 1, j, gvEmployees.Rows[i].Cells[j].Text); } } string filePath = Server.MapPath("~/Exports/EmployeeData.xlsx"); workbook.SaveAs(filePath); } } using System; using System.Data; using System.Web.UI; using IronXL; public partial class GridViewExport : Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { BindGridView(); } } private void BindGridView() { DataTable dt = new DataTable(); dt.Columns.Add("EmployeeID", typeof(int)); dt.Columns.Add("Name", typeof(string)); dt.Columns.Add("Department", typeof(string)); dt.Columns.Add("Salary", typeof(decimal)); dt.Rows.Add(1, "John Smith", "Engineering", 75000); dt.Rows.Add(2, "Sarah Johnson", "Marketing", 65000); dt.Rows.Add(3, "Michael Chen", "Finance", 70000); ViewState["EmployeeData"] = dt; gvEmployees.DataSource = dt; gvEmployees.DataBind(); } protected void btnExport_Click(object sender, EventArgs e) { WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet worksheet = workbook.CreateWorkSheet("Employees"); // Write header row for (int j = 0; j < gvEmployees.HeaderRow.Cells.Count; j++) { worksheet.SetCellValue(0, j, gvEmployees.HeaderRow.Cells[j].Text); } // Write data rows for (int i = 0; i < gvEmployees.Rows.Count; i++) { for (int j = 0; j < gvEmployees.Rows[i].Cells.Count; j++) { worksheet.SetCellValue(i + 1, j, gvEmployees.Rows[i].Cells[j].Text); } } string filePath = Server.MapPath("~/Exports/EmployeeData.xlsx"); workbook.SaveAs(filePath); } } $vbLabelText $csharpLabel WorkBook.Create(ExcelFileFormat.XLSX) 呼叫初始化一個面向現代 Open XML 格式的記憶體工作簿。 CreateWorkSheet("Employees") 新增第一張工作表。 外層循環(i)遍歷資料行; 內部循環(j)遍歷列。 行索引 i + 1 用於資料儲存格,這樣就不會覆寫第 0 行的標題。 為什麼要使用IronXL而不是 Excel Interop? Excel Interop需要在伺服器上安裝正版 Microsoft Excel,並且會建立 COM 對象,這些對象必須明確釋放以避免記憶體洩漏。 IronXL直接以 Open XML 套件的形式讀取和寫入 .xlsx 檔案 -- 無需 COM、無需 Office、無需 Marshal.ReleaseComObject 樣板程式碼。 這使得它在 IIS、Azure 應用服務、Docker 和其他 Office 不可用的伺服器環境中也能可靠運作。 XLSX 下載的正確 MIME 類型是什麼? 如果您希望瀏覽器彈出檔案儲存對話方塊而不是直接提供位元組,請將回應內容類型設定為 application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,並在將工作簿位元組寫入回應流之前新增 Content-Disposition: attachment 標頭。 如何新增列標題和自動調整列寬? 基本範例會寫入從 HeaderRow.Cells 中提取的標題,但生產匯出也應自動調整每個欄位的大小,以便在 Excel 中無需手動調整即可閱讀資料: protected void btnExport_Click(object sender, EventArgs e) { WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet worksheet = workbook.CreateWorkSheet("Employees"); // Write column headers int colCount = gvEmployees.HeaderRow.Cells.Count; for (int i = 0; i < colCount; i++) { string header = gvEmployees.HeaderRow.Cells[i].Text; worksheet.SetCellValue(0, i, header); } // Write data rows for (int i = 0; i < gvEmployees.Rows.Count; i++) { for (int j = 0; j < gvEmployees.Rows[i].Cells.Count; j++) { worksheet.SetCellValue(i + 1, j, gvEmployees.Rows[i].Cells[j].Text); } } // Auto-size each column for readability for (int col = 0; col < colCount; col++) { worksheet.AutoSizeColumn(col); } string filePath = Server.MapPath("~/Exports/EmployeeReport.xlsx"); workbook.SaveAs(filePath); } protected void btnExport_Click(object sender, EventArgs e) { WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet worksheet = workbook.CreateWorkSheet("Employees"); // Write column headers int colCount = gvEmployees.HeaderRow.Cells.Count; for (int i = 0; i < colCount; i++) { string header = gvEmployees.HeaderRow.Cells[i].Text; worksheet.SetCellValue(0, i, header); } // Write data rows for (int i = 0; i < gvEmployees.Rows.Count; i++) { for (int j = 0; j < gvEmployees.Rows[i].Cells.Count; j++) { worksheet.SetCellValue(i + 1, j, gvEmployees.Rows[i].Cells[j].Text); } } // Auto-size each column for readability for (int col = 0; col < colCount; col++) { worksheet.AutoSizeColumn(col); } string filePath = Server.MapPath("~/Exports/EmployeeReport.xlsx"); workbook.SaveAs(filePath); } $vbLabelText $csharpLabel AutoSizeColumn(col) 指示IronXL根據儲存格內容長度計算最佳列寬,與 Excel 桌面應用程式中的"格式">"自動調整列寬"操作類似。 在寫入所有資料後循環調用它比在每一行之後調用它效率更高,因為此時最終內容已經知道。 如需更多樣式選項(例如粗體標題、背景顏色、數字格式),請瀏覽IronXL單元格樣式教學。 您也可以合併儲存格,建立跨越多列的報表標題。 如何將粗體格式應用於表頭單元格? 使用 worksheet["A1"].Style 傳回的 IStyle 物件(或範圍)。 在寫入值之前或之後設定 Font.Bold = true -- 樣式與儲存格內容解耦: // Bold the entire header row (columns A through D) var headerRange = worksheet["A1:D1"]; headerRange.Style.Font.Bold = true; headerRange.Style.BackgroundColor = "#4472C4"; headerRange.Style.Font.FontColor = "#FFFFFF"; // Bold the entire header row (columns A through D) var headerRange = worksheet["A1:D1"]; headerRange.Style.Font.Bold = true; headerRange.Style.BackgroundColor = "#4472C4"; headerRange.Style.Font.FontColor = "#FFFFFF"; $vbLabelText $csharpLabel 此模式統一適用於任何大小的範圍。有關樣式屬性的完整列表,請參閱IronXL樣式 API 參考文件。 如何直接從數據表匯出資料? 遍歷已渲染的 GridView 行會將匯出與控制項的目前視覺狀態綁定,而該狀態可能會受到分頁、排序和列可見性設定的影響。 從儲存在 ViewState 中的底層 DataTable 匯出數據,無論網格如何配置,都會產生確定性的結果: protected void btnExport_Click(object sender, EventArgs e) { DataTable sourceData = ViewState["EmployeeData"] as DataTable; if (sourceData == null) { Response.Write("No data available to export."); return; } WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet worksheet = workbook.CreateWorkSheet("Report"); // Column headers from DataTable schema for (int i = 0; i < sourceData.Columns.Count; i++) { worksheet.SetCellValue(0, i, sourceData.Columns[i].ColumnName); } // Data rows from DataRow objects for (int i = 0; i < sourceData.Rows.Count; i++) { for (int j = 0; j < sourceData.Columns.Count; j++) { worksheet.SetCellValue(i + 1, j, sourceData.Rows[i][j].ToString()); } } string filePath = Server.MapPath("~/Exports/DataExport.xlsx"); workbook.SaveAs(filePath); } protected void btnExport_Click(object sender, EventArgs e) { DataTable sourceData = ViewState["EmployeeData"] as DataTable; if (sourceData == null) { Response.Write("No data available to export."); return; } WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet worksheet = workbook.CreateWorkSheet("Report"); // Column headers from DataTable schema for (int i = 0; i < sourceData.Columns.Count; i++) { worksheet.SetCellValue(0, i, sourceData.Columns[i].ColumnName); } // Data rows from DataRow objects for (int i = 0; i < sourceData.Rows.Count; i++) { for (int j = 0; j < sourceData.Columns.Count; j++) { worksheet.SetCellValue(i + 1, j, sourceData.Rows[i][j].ToString()); } } string filePath = Server.MapPath("~/Exports/DataExport.xlsx"); workbook.SaveAs(filePath); } $vbLabelText $csharpLabel 列名來自 DataTable.Columns[i].ColumnName,它反映了原始資料架構,而不是在 GridView 模板中應用的任何顯示名稱覆蓋。 使用列索引從 DataRow 物件中擷取儲存格值,並將每個值轉換為 string 以滿足 SetCellValue。 當 GridView 使用分頁時,此模式尤其有價值-迭代 gvEmployees.Rows 只會傳回目前可見頁上的行,而從完整的 DataTable 讀取則會匯出每筆記錄。 匯出大型資料表會發生什麼情況? IronXL可以有效率地傳輸大型 Excel 資料集的工作簿資料。 對於超過 10 萬行的匯出操作,請考慮在單一工作表操作中批次執行 SetCellValue 調用,而不是在巢狀循環中設定單一儲存格。您也可以將工作簿寫入 MemoryStream,然後將其增量刷新到 Response 流中,以避免將整個文件保存在伺服器 RAM 中。 導出過程中如何處理錯誤? 生產導出處理程序應將IronXL操作包裝在 catch 區塊中,並在出現問題時向使用者傳回描述性訊息。 常見故障模式包括缺少 ~/Exports/ 目錄、檔案權限錯誤以及會話逾時後 ViewState 為空: protected void btnExport_Click(object sender, EventArgs e) { try { DataTable sourceData = ViewState["EmployeeData"] as DataTable; if (sourceData == null) throw new InvalidOperationException("Session data has expired. Please reload the page."); WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet worksheet = workbook.CreateWorkSheet("Employees"); for (int i = 0; i < sourceData.Columns.Count; i++) worksheet.SetCellValue(0, i, sourceData.Columns[i].ColumnName); for (int i = 0; i < sourceData.Rows.Count; i++) for (int j = 0; j < sourceData.Columns.Count; j++) worksheet.SetCellValue(i + 1, j, sourceData.Rows[i][j].ToString()); string filePath = Server.MapPath("~/Exports/SafeExport.xlsx"); workbook.SaveAs(filePath); lblStatus.Text = "Export successful. File saved to server."; } catch (Exception ex) { lblStatus.Text = $"Export failed: {ex.Message}"; } } protected void btnExport_Click(object sender, EventArgs e) { try { DataTable sourceData = ViewState["EmployeeData"] as DataTable; if (sourceData == null) throw new InvalidOperationException("Session data has expired. Please reload the page."); WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet worksheet = workbook.CreateWorkSheet("Employees"); for (int i = 0; i < sourceData.Columns.Count; i++) worksheet.SetCellValue(0, i, sourceData.Columns[i].ColumnName); for (int i = 0; i < sourceData.Rows.Count; i++) for (int j = 0; j < sourceData.Columns.Count; j++) worksheet.SetCellValue(i + 1, j, sourceData.Rows[i][j].ToString()); string filePath = Server.MapPath("~/Exports/SafeExport.xlsx"); workbook.SaveAs(filePath); lblStatus.Text = "Export successful. File saved to server."; } catch (Exception ex) { lblStatus.Text = $"Export failed: {ex.Message}"; } } $vbLabelText $csharpLabel 對於將文件作為直接瀏覽器下載而不是保存到磁碟來提供的 Web 應用程序,請在設置 content-type 和 disposition 標頭後使用 Response.BinaryWrite 或寫入 Response.OutputStream。 確保 ~/Exports/ 目錄存在,並且 IIS 應用程式集區識別對該目錄具有寫入權限。 如何將 XLSX 檔案作為瀏覽器下載發送? 將 workbook.SaveAs(filePath) 替換為基於流的回應: using System.IO; // ... inside btnExport_Click after populating the worksheet ... byte[] fileBytes; using (MemoryStream ms = new MemoryStream()) { workbook.SaveAs(ms); fileBytes = ms.ToArray(); } Response.Clear(); Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; Response.AddHeader("Content-Disposition", "attachment; filename=EmployeeData.xlsx"); Response.BinaryWrite(fileBytes); Response.End(); using System.IO; // ... inside btnExport_Click after populating the worksheet ... byte[] fileBytes; using (MemoryStream ms = new MemoryStream()) { workbook.SaveAs(ms); fileBytes = ms.ToArray(); } Response.Clear(); Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; Response.AddHeader("Content-Disposition", "attachment; filename=EmployeeData.xlsx"); Response.BinaryWrite(fileBytes); Response.End(); $vbLabelText $csharpLabel 這種模式避免了將臨時檔案寫入磁碟。 伺服器分配了 MemoryStream,序列化為 byte[],並直接傳送給客戶端。 Response.End() 呼叫會刷新回應,並防止在二進位資料之後附加額外的頁面標記。 如何匯出多個工作表或進階工作簿? 單一 WorkBook 可以包含多個工作表,這在需要將多個 GridView 或相同資料集的不同粒度匯出到一個檔案時非常有用。對每個工作表調用一次 workbook.CreateWorkSheet(name): WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet summary = workbook.CreateWorkSheet("Summary"); WorkSheet detail = workbook.CreateWorkSheet("Detail"); // Populate summary sheet ... // Populate detail sheet ... workbook.SaveAs(Server.MapPath("~/Exports/FullReport.xlsx")); WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet summary = workbook.CreateWorkSheet("Summary"); WorkSheet detail = workbook.CreateWorkSheet("Detail"); // Populate summary sheet ... // Populate detail sheet ... workbook.SaveAs(Server.MapPath("~/Exports/FullReport.xlsx")); $vbLabelText $csharpLabel IronXL還支援讀取現有的 Excel 文件,因此您可以加載帶有品牌和格式的預建模板,將資料注入到特定單元格中,並保存結果——保留模板中已有的圖表、圖像和樣式。 為了實現更豐富的輸出, IronXL提供了Excel 公式支援、條件格式設定、圖表建立和影像嵌入功能。 這些功能在IronXL教學部分有詳細說明。 IronXL與 EPPlus 和 封閉式 XML 相比如何? 特徵 IronXL EPPlus 封閉式 XML 需安裝辦公室軟體 不 不 不 XLSX 讀取和寫入 是的 是的 是的 XLS(舊版)支持 是的 不 不 CSV/TSV匯出 是的 不 部分的 圖表建立 API 是的 是的 有限的 許可模式 永久 + SaaS Polyform 非商業 麻省理工學院 支援.NET 10 是的 是的 是的 EPPlus在版本 5 中切換到了商業許可,這使得IronXL成為已經投資於商業.NET庫生態系統的團隊的自然選擇。 ClosedXML仍然採用 麻省理工學院 許可證,但對圖表的支援有限。 正確的選擇取決於您專案的授權限制、您需要的 Excel 功能,以及是否需要支援舊版 .xls 格式。 IronXL支援哪些 Excel 格式? IronXL可以讀取和寫入 .xlsx(Office Open XML)、.xls(舊版 BIFF8)、.csv 和 .tsv 格式。 您可以透過一次 API 調用,將傳遞給 WorkBook.Create 的 ExcelFileFormat 枚舉值變更為 WorkBook.Create,或透過載入現有檔案並將其另存為不同的格式,在 Excel 檔案格式之間進行轉換。 下一步計劃是什麼? 現在,您可以使用IronXL將ASP.NET GridView 資料匯出到 Excel XLSX 文件,並擁有三種可用於生產環境的模式: -行迭代導出-- 從綁定匯出到可用匯出的最快路徑 GridView -匯出標題和格式-為報表新增列自動調整大小和粗體標題,使其更美觀。 -基於資料表的匯出-完全繞過分頁或篩選網格的渲染控件 接下來合乎邏輯的步驟是: 1.新增使用 MemoryStream 和 Response.BinaryWrite 的瀏覽器下載回應,以便使用者無需伺服器端保存路徑即可立即收到檔案。 使用IronXL格式 API套用儲存格樣式-粗體標題、背景顏色填滿和數字格式。 3.探索多工作表工作簿,將匯總資料和詳細資料合併到一個文件中,並交付給利害關係人。 使用IronXL 的讀取 API將 Excel 檔案讀回DataTable 對象,以實現往返匯入/匯出工作流程。 在ironsoftware.com/csharp/excel/開始免費試用,使用功能齊全的試用許可證在您的專案中測試所有功能。 對於建立文件產生流程的團隊來說, IronPDF與IronXL集成,可將工作表直接匯出為 PDF。 Iron Suite將IronXL與IronPDF、 IronOCR、 IronBarcode和IronZIP捆綁在一起,以更低的組合價格出售。 常見問題解答 使用 IronXL 將 GridView 匯出至 Excel 的主要目的是什麼? IronXL 主要用於協助將 ASP.NET GridView 中的資料匯出至 XLSX 等 Excel 格式,確保在 C# 應用程式中具備高效能與簡易的整合性。 IronXL 在從 GridView 匯出資料時能否處理大型資料集? 是的,IronXL 經過優化,能在從 GridView 匯出至 Excel 的過程中高效處理大型資料集,同時維持速度與效能。 使用 IronXL 時,是否可以自訂 Excel 輸出格式? 透過 IronXL,您可以自訂 Excel 輸出文件的各項設定,例如格式、樣式,以及在匯出檔案中加入額外資料或公式。 IronXL 與其他用於將 GridView 匯出至 Excel 的程式庫相比如何? 相較於其他某些函式庫,IronXL程式庫提供更直觀且靈活的解決方案,不僅支援現代 Excel 格式,還能直接與 C# 應用程式整合。 IronXL 是否支援匯出為 XLSX 以外的格式? 是的,IronXL 支援匯出至多種 Excel 格式,包括 XLS、CSV 和 TSV,能靈活滿足不同專案的需求。 在專案中使用 IronXL 有哪些先決條件? 要使用 IronXL,您需要一個 .NET 環境,並可透過 NuGet 在您的 C# 專案中安裝 IronXL。 IronXL 能否以非同步方式匯出 GridView 資料? IronXL 支援非同步操作,讓開發人員能在不阻塞主應用程式執行緒的情況下,將 GridView 資料匯出至 Excel 檔案。 如何開始使用 IronXL 將 GridView 匯出至 Excel? 開始使用前,請參閱 IronXL 的文件與範例,其中提供逐步指引,說明如何設定並執行從 GridView 將資料匯出至 Excel 的操作。 Jordi Bardia 立即與工程團隊聊天 軟體工程師 Jordi 在 Python、C# 和 C++ 上最得心應手,當他不在 Iron Software 展現技術時,便在做遊戲編程。在分担產品测测试,產品開發和研究的责任時,Jordi 為持续的產品改進增值。他说这种多样化的经验使他受到挑战并保持参与, 而这也是他与 Iron Software 中工作一大乐趣。Jordi 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。 相關文章 更新2026年3月1日 在ASP.NET C#中下載Excel文件:將數據匯出到XLSX,CSV和更多格式 使用C#和IronXL在ASP.NET Core中下載Excel文件。從MVC控制器中匯出數據到XLSX, CSV和XML,附有MemoryStream和File()返回。包括代碼範例。 閱讀更多 更新2026年3月1日 如何在Blazor中使用IronXL匯出Excel文件 學習如何在Blazor伺服器應用程式中使用IronXL将數據匯出到Excel。此指南涵蓋專案設置、服務設計、條件格式化、多表報告和錯誤處理,附有完整的C#代碼範例。 閱讀更多 更新2026年2月27日 如何在C#中而不是使用StreamReader來讀取Excel文件 了解StreamReader為何無法讀取Excel文件,並學習如何使用IronXL加載來自磁盤或內存流的XLSX和XLS工作簿。 閱讀更多 如何使用IronXL在C#中創建Excel樞紐分析表。如何在C#中將GridView帶格式...
更新2026年3月1日 在ASP.NET C#中下載Excel文件:將數據匯出到XLSX,CSV和更多格式 使用C#和IronXL在ASP.NET Core中下載Excel文件。從MVC控制器中匯出數據到XLSX, CSV和XML,附有MemoryStream和File()返回。包括代碼範例。 閱讀更多
更新2026年3月1日 如何在Blazor中使用IronXL匯出Excel文件 學習如何在Blazor伺服器應用程式中使用IronXL将數據匯出到Excel。此指南涵蓋專案設置、服務設計、條件格式化、多表報告和錯誤處理,附有完整的C#代碼範例。 閱讀更多
更新2026年2月27日 如何在C#中而不是使用StreamReader來讀取Excel文件 了解StreamReader為何無法讀取Excel文件,並學習如何使用IronXL加載來自磁盤或內存流的XLSX和XLS工作簿。 閱讀更多