<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      國產化Excel開發組件Spire.XLS教程:C# 輕松將 DataSet 導出到 Excel

      在 C# 開發中,DataSet 常用于管理內存中的數據,通常來源于數據庫查詢或系統集成過程。在很多情況下,你可能需要將 DataSet 導出為 Excel 文件——例如生成報表、與非開發人員共享結構化數據,或將記錄歸檔以便后續參考。

      E-iceblue旗下Spire系列產品是國產文檔處理領域的優秀產品,支持國產化,幫助企業高效構建文檔處理的應用程序。本文將介紹如何使用 Spire.XLS for .NET 在 C# 中導出 DataSet 到 Excel,包括創建 Excel 文件、將多個 DataTable 分別寫入不同工作表、應用格式化,以及處理大數據量導出等場景。

      Spire.XLS for .NET試用下載,請聯系E-iceblue Spire官方授權代理商慧都科技

      歡迎加入Spire技術交流Q群(125237868),與更多小伙伴一起提升文檔開發技能~

      1. DataSet 基礎與 Excel 導出環境搭建

      什么是 DataSet?

      C# 中的 DataSet 是內存中對結構化數據的表示,可以包含多個 DataTable,并保存其行、列和關系。這使得開發者在無需直接連接數據庫的情況下,也能方便地處理關系型數據。

      為什么要將 DataSet 導出到 Excel?

      • 數據共享 —— Excel 文件易于團隊間傳遞和查看。
      • 數據分析 —— 分析人員可在 Excel 中直接使用公式、數據透視表和圖表進行處理。
      • 歸檔保存 —— 將查詢結果或處理過的數據存儲為可讀性強的便攜格式。

      相比純文本或 CSV,Excel 具備豐富的格式化功能多工作表支持以及更佳的可讀性。

      環境搭建

      本文使用 Spire.XLS for .NET 來導出 DataSet 到 Excel。通過 NuGet 安裝:

      Install-Package Spire.XLS

      引用命名空間:

      using Spire.Xls;
      using System.Data;
      using System.Drawing; // 用于顏色

      Spire.XLS for .NET試用下載,請聯系E-iceblue Spire官方授權代理商慧都科技

      歡迎加入Spire技術交流Q群(125237868),與更多小伙伴一起提升文檔開發技能~

      2. 在 C# 中用 DataSet 數據創建 Excel 文件

      將 DataSet 導出為 Excel 包含兩個關鍵步驟:準備數據和寫入工作簿。實際應用中,DataSet 通常來自數據庫或 API 查詢。為了演示清晰,這里我們先構建一個內存中的 DataSet,再將其導出為 Excel 文件,每個 DataTable 對應一個工作表。

      2.1 使用示例數據初始化 DataSet

      下面的代碼示例構建了一個包含多個業務表的 DataSet,表中包含多種常見數據類型(int、string、DateTime、decimal)。

      using System;
      using System.Data;
      
      class Program
      {
          static DataSet CreateSampleDataSet()
          {
              DataSet ds = new DataSet("公司數據");
      
              // 員工表
              DataTable employees = new DataTable("員工");
              employees.Columns.Add("編號", typeof(int));
              employees.Columns.Add("姓名", typeof(string));
              employees.Columns.Add("部門編號", typeof(int));
              employees.Columns.Add("入職日期", typeof(DateTime));
              employees.Columns.Add("薪資", typeof(decimal));
      
              employees.Rows.Add(1, "張偉", 101, new DateTime(2020, 5, 12), 5500.00m);
              employees.Rows.Add(2, "李娜", 102, new DateTime(2019, 3, 8), 7200.50m);
              employees.Rows.Add(3, "王強", 103, new DateTime(2021, 11, 2), 4800.75m);
      
              // 部門表
              DataTable departments = new DataTable("部門");
              departments.Columns.Add("部門編號", typeof(int));
              departments.Columns.Add("部門名稱", typeof(string));
              departments.Rows.Add(101, "人事部");
              departments.Rows.Add(102, "信息技術部");
              departments.Rows.Add(103, "財務部");
      
              // 項目表
              DataTable projects = new DataTable("項目");
              projects.Columns.Add("項目編號", typeof(int));
              projects.Columns.Add("項目名稱", typeof(string));
              projects.Columns.Add("負責人編號", typeof(int));
              projects.Columns.Add("開始日期", typeof(DateTime));
              projects.Rows.Add(1001, "招聘系統", 1, new DateTime(2023, 1, 15));
              projects.Rows.Add(1002, "ERP升級", 2, new DateTime(2023, 4, 10));
              projects.Rows.Add(1003, "預算規劃", 3, new DateTime(2023, 7, 5));
      
              ds.Tables.Add(employees);
              ds.Tables.Add(departments);
              ds.Tables.Add(projects);
      
              return ds;
          }
      }

      2.2 將 DataSet 導出為 Excel 文件

      有了 DataSet 后,接下來創建 Excel 文件:實例化 Workbook,遍歷 DataTable,將其插入到工作表中,最后保存文件。

      using Spire.Xls;
      using System.Data;
      
      class Program
      {
          static void Main()
          {
              DataSet ds = CreateSampleDataSet();
      
              Workbook workbook = new Workbook();
              workbook.Worksheets.Clear();
      
              // 每個 DataTable 導出為一個單獨的工作表
              for (int i = 0; i < ds.Tables.Count; i++)
              {
                  Worksheet sheet = workbook.Worksheets.Add(ds.Tables[i].TableName);
      
                  sheet.InsertDataTable(ds.Tables[i], true, 1, 1);
                  sheet.Name = ds.Tables[i].TableName;
              }
      
              workbook.SaveToFile("DatasetToExcel.xlsx", ExcelVersion.Version2016);
          }
      }

      導出要點說明

      • 每個 DataTable 會被寫入單獨的工作表。
      • InsertDataTable(DataTable, bool, int, int) 可指定數據插入的起始單元格。
      • SaveToFile() 將工作簿保存為指定格式的文件。

      除了將 DataTable 導出到不同工作表,你也可以通過調整 InsertDataTable 方法的起始行列參數,將多個表寫入同一個工作表。

      效果預覽

      下圖展示了從 DataSet 導出的 Excel 文件,其中包含 Employees、Departments、Projects 三個工作表。

      3. 使用 C# 為 Excel 工作表添加格式

      原始數據往往不夠直觀,格式化可以提升可讀性,使報表更專業。通過 Spire.XLS,可以設置字體、背景色、邊框,并對數字和日期應用格式。

      using System.Drawing;
      using Spire.Xls;
      
      // 獲取第一個工作表
      Worksheet sheet1 = workbook.Worksheets["員工"];
      
      // 1) 表頭樣式 (A1:E1)
      CellRange header = sheet1.AllocatedRange.Rows[0];
      header.Style.Font.IsBold = true;
      header.Style.Font.Size = 12;
      header.Style.Font.Color = Color.White;
      header.Style.Color = Color.SteelBlue;
      header.BorderAround(LineStyleType.Thin);
      
      // 2) 設置列的數字格式 (D: HireDate, E: Salary)
      sheet1.AllocatedRange.Columns[3].Style.NumberFormat = "yyyy-mm-dd";
      sheet1.AllocatedRange.Columns[4].Style.NumberFormat = "$#,##0.00";
      
      // 3) 數據區域設置淺色背景 (A2:E4 示例)
      CellRange data = sheet1.Range["A2:E4"];
      data.Style.Color = Color.FromArgb(245, 247, 250);
      data.BorderAround(LineStyleType.Thin);
      
      // 設置字體名
      sheet1.AllocatedRange.Style.Font.FontName = "微軟雅黑";
      
      // 自動調整行高列寬
      sheet1.AllocatedRange.AutoFitColumns();
      sheet1.AllocatedRange.AutoFitRows();

      格式化功能說明

      • Style.Font —— 設置字體屬性(加粗、大小、顏色)。
      • Style.Color —— 設置單元格背景色。
      • Borders/BorderAround —— 為范圍繪制邊框。
      • NumberFormat —— 應用 Excel 內置格式(日期、貨幣、百分比等)。
      • AutoFitColumns/Rows —— 根據內容自動調整列寬和行高。

      格式化效果預覽

      下圖展示了藍色背景的加粗表頭、帶邊框的區域,以及日期和貨幣列的正確格式。

      4. 處理大型 DataSet 導出

      當 DataSet 數據量較大時,性能與內存消耗尤為關鍵。常見優化方式包括:

      • 拆分到多個工作表 —— 避免超過 Excel 行數限制,同時方便分類。
      • 分批寫入 —— 按表或按范圍逐步插入數據。
      • 輕量化格式 —— 減少復雜格式以降低文件大小和處理時間。
      • 流式處理 —— 避免一次性加載全部數據。

      5. 在 C# 中讀取 Excel 數據到 DataSet

      除了導出,很多場景下還需要將 Excel 文件讀取到 DataSet 中,用于數據處理或遷移。這在導入外部報表、系統集成或數據庫預處理時非常實用。

      using System.Data;
      using Spire.Xls;
      
      class Program
      {
          static DataSet ReadExcelIntoDataSet(string filePath)
          {
              DataSet ds = new DataSet();
              Workbook workbook = new Workbook();
              workbook.LoadFromFile(filePath);
      
              foreach (Worksheet sheet in workbook.Worksheets)
              {
                  DataTable dt = sheet.ExportDataTable();
                  dt.TableName = sheet.Name;
                  ds.Tables.Add(dt);
              }
      
              return ds;
          }
      }

      ExportDataTable 方法可以將每個工作表轉換為 DataTable,保留其結構和單元格數據。通過設置 TableName 并添加到 DataSet,即可將多個工作表整合為一個內存數據容器,便于進一步處理。

      總結

      在 C# 中將 DataSet 導出到 Excel,可以方便地生成報表、共享數據,并提升數據的可分析性與展示效果。通過 Spire.XLS for .NET,你不僅能直接從 DataSet 創建 Excel 文件,還能進行格式化、管理多工作表,并高效處理大數據量。同時也支持將 Excel 數據導入 DataSet,便于與應用或數據庫集成。

      常見問題:C# DataSet 與 Excel 集成

      Q1: 如何將 DataSet 中的多個 DataTable 分別導出到不同工作表?

      遍歷 ds.Tables,為每個 DataTable 調用 InsertDataTable,并新建工作表即可。

      Q2: 可以將 DataSet 導出到已存在 Excel 文件的指定工作表嗎?

      可以。使用 Workbook.LoadFromFile() 打開文件,再選擇目標工作表并調用 InsertDataTable

      Q3: 導出 DataSet 到 Excel 時能保留列格式和數據類型嗎?

      數據類型會被保留。你還可以在導出后對列應用日期、貨幣、對齊等格式。

      Q4: 如果 DataSet 超過 10 萬行,如何優化導出性能?

      可拆分到多個工作表,分批寫入,并減少復雜格式,以提升性能。

      Spire.XLS for .NET試用下載,請聯系E-iceblue Spire官方授權代理商慧都科技

      歡迎加入Spire技術交流Q群(125237868),與更多小伙伴一起提升文檔開發技能~

      posted @ 2025-09-18 10:17  IT開發者筆記  閱讀(42)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产AV国片精品有毛| 久久精品国产中文字幕| 中文字幕亚洲男人的天堂网络 | 国产精品久久久久鬼色| 高清国产av一区二区三区| 真实国产熟睡乱子伦视频| 亚洲精品av一二三区无码| 国产成人精品18| 久久国产精品不只是精品| 小雪被老外黑人撑破了视频| 天等县| 成人精品日韩专区在线观看 | 日韩在线视频一区二区三区| 老司机免费的精品视频| 久久人人97超碰国产精品| 精品久久久久久无码不卡| 口爆少妇在线视频免费观看| 久在线精品视频线观看| 成 年 人 黄 色 大 片大 全| 人人妻人人澡人人爽曰本| 成年人尤物视频在线观看| 天堂网在线观看| 办公室强奷漂亮少妇同事| 亚洲国产成人久久综合同性| 无码日韩做暖暖大全免费不卡| 亚洲精品国产美女久久久| 韩国午夜福利片在线观看| 五月开心六月丁香综合色啪| 亚洲乱码中文字幕小综合| a级国产乱理伦片在线观看al| 午夜福利日本一区二区无码| 国产AV无码专区亚洲AV潘金链| 久热中文字幕在线精品观| 色综合久久精品亚洲国产| 99久久精品国产一区二区蜜芽| 精品熟女少妇免费久久| 久久96热在精品国产高清| 麻豆蜜桃av蜜臀av色欲av| 成人免费精品网站在线观看影片| 美女黄18以下禁止观看| 亚洲人成网站在线观看播放不卡|