翻譯|使用教程|編輯:吉煒煒|2025-08-18 16:57:24.280|閱讀 89 次
概述:將數據庫數據導出為 Excel 文件,也因此成為實現報表生成、審計追蹤、數據遷移和臨時分析等需求時的一種高頻操作。本文將介紹如何使用 Spire.XLS for .NET 通過 C# 將數據庫記錄高效導出到 Excel 文件。示例以 SQL Server 數據庫為基礎,但相同方法也適用于 SQLite、MySQL、Oracle 等其他關系型數據庫,只需調整連接方式即可。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
在企業應用開發中,Excel 通常被用作在技術人員與業務人員之間傳遞結構化數據的橋梁,因其格式靈活、易于共享且用戶普遍熟悉。而將數據庫數據導出為 Excel 文件,也因此成為實現報表生成、審計追蹤、數據遷移和臨時分析等需求時的一種高頻操作。
E-iceblue旗下Spire系列產品是文檔開發領域的佼佼者,支持國產化信創。本文將介紹如何使用 Spire.XLS for .NET 通過 C# 將數據庫記錄高效導出到 Excel 文件。示例以 SQL Server 數據庫為基礎,但相同方法也適用于 SQLite、MySQL、Oracle 等其他關系型數據庫,只需調整連接方式即可。
歡迎加入Spire技術交流Q群(125237868),與更多小伙伴一起提升文檔開發技能~
在開始編碼之前,請先確認開發環境已就緒:
示例數據庫
以下 SQL 腳本在 SQL Server Express 中創建一個 Employees 表并插入測試數據:
CREATE TABLE Employees ( Id INT PRIMARY KEY IDENTITY, Name NVARCHAR(100) NOT NULL, Department NVARCHAR(50) NOT NULL, Position NVARCHAR(50), HireDate DATE NOT NULL, Salary DECIMAL(10, 2) NOT NULL, IsFullTime BIT NOT NULL ); INSERT INTO Employees (Name, Department, Position, HireDate, Salary, IsFullTime) VALUES (N'張偉', N'人力資源部', N'人事經理', '2018-05-01', 5500.00, 1), (N'李強', N'信息技術部', N'軟件工程師', '2020-09-15', 7200.50, 1), (N'王芳', N'財務部', N'會計', '2019-11-20', 6300.75, 0), (N'陳麗', N'市場部', N'內容專員', '2021-02-10', 4800.00, 1);如果使用 MySQL 或 SQLite,只需調整 SQL 語法與連接字符串,整體導出邏輯不變。
以 SQL Server Express 為例,使用 SqlConnection 建立連接:
string connectionString = @"Data Source=YourServer\SQLEXPRESS;Initial Catalog=YourDatabaseName;Integrated Security=True;";
使用 SqlDataAdapter 執行查詢并填充 DataTable:
using System.Data; using Microsoft.Data.SqlClient; DataTable dataTable = new DataTable(); using (SqlConnection conn = new SqlConnection(connectionString)) { conn.Open(); string query = "SELECT * FROM Employees"; using (SqlDataAdapter adapter = new SqlDataAdapter(query, conn)) { adapter.Fill(dataTable); } }
using Spire.Xls; Workbook workbook = new Workbook(); workbook.Worksheets.Clear(); Worksheet sheet = workbook.Worksheets.Add("Employees"); // 從第 1 行第 1 列插入 DataTable 數據,并包含列標題 sheet.InsertDataTable(dataTable, true, 1, 1); // 保存為 Excel 2013 格式 workbook.SaveToFile("Employees.xlsx", ExcelVersion.Version2013);
核心方法:
InsertDataTable(DataTable table, bool columnHeaders, int firstRow, int firstColumn)
SaveToFile:可保存為 .xlsx、.xls、.csv 等格式,也可保存到流中
導出數據后,可以通過以下方式提高可讀性:
// 表頭樣式 sheet.Rows[0].Style.Font.IsBold = true; sheet.Rows[0].Style.Font.Size = 14; sheet.Rows[0].Style.HorizontalAlignment = HorizontalAlignType.Center; sheet.Rows[0].Style.Color = System.Drawing.Color.LightGray; // 數據行樣式 for (int i = 1; i < sheet.Rows.Count(); i++) { var dataRow = sheet.Rows[i]; dataRow.Style.Font.Size = 12; dataRow.Style.HorizontalAlignment = HorizontalAlignType.Left; } // 設置全局字體 sheet.AllocatedRange.Style.Font.FontName = "微軟雅黑"; // 添加邊框 sheet.AllocatedRange.BorderAround(LineStyleType.Thin, System.Drawing.Color.Black); sheet.AllocatedRange.BorderInside(LineStyleType.Medium, System.Drawing.Color.Black); // 自動調整列寬 sheet.AllocatedRange.AutoFitColumns();
除了 DataTable 之外,你還可以:
使用 Entity Framework
var employees = dbContext.Employees.ToList();
然后將集合轉換為 DataTable 或逐行寫入 Excel。
調用存儲過程
SqlCommand cmd = new SqlCommand("GetEmployees", conn); cmd.CommandType = CommandType.StoredProcedure;
讀取 SQLite / MySQL / Oracle 只需更換連接類型和驅動(Microsoft.Data.Sqlite、MySql.Data 等),其余導出邏輯相同。
問題 | 可能原因與解決方案 |
---|---|
Excel 文件為空 | 檢查 DataTable 是否在導出前已正確填充 |
文件無法保存 | 確認保存路徑存在且有寫入權限 |
無法連接數據庫 | 檢查服務器是否啟動、連接字符串是否正確 |
特殊字符亂碼 | 數據庫列類型應使用 NVARCHAR,Excel 需使用支持 Unicode 的字體 |
身份驗證失敗 | Windows 身份驗證用 Integrated Security=True,SQL 身份驗證需提供用戶名與密碼 |
通過 Spire.XLS for .NET,我們可以在 C# 中快速將數據庫數據導出為 Excel,無需安裝 Microsoft Office,且支持批量數據、格式設置和多種文件格式。 此方案可用于定時任務、后臺服務或 Web 應用,實現數據的自動化導出與分發。
Q:如何在 C# 中將 SQL 數據導出到 Excel? A:使用 SqlConnection 讀取數據到 DataTable,再調用 Spire.XLS 的 InsertDataTable() 方法即可。
Q:支持導出 SQLite 或 MySQL 數據嗎? A:支持,只需更換數據庫驅動與連接字符串。
Q:需要安裝 Excel 嗎? A:不需要,Spire.XLS 是獨立的 Excel 處理庫。
Q:能否將多個表導出到同一個 Excel 文件? A:可以,創建多個工作表并分別插入數據即可。
歡迎下載|體驗更多E-iceblue產品
獲取更多信息請咨詢 ;技術交流Q群(125237868)
————————————————————————————————————————
關于慧都科技:
慧都科技是一家行業數字化解決方案公司,長期專注于軟件、油氣與制造行業。公司基于深入的業務理解與管理洞察,以系統化的業務建模驅動技術落地,幫助企業實現智能化運營與長期競爭優勢。在軟件工程領域,我們提供開發控件、研發管理、代碼開發、部署運維等軟件開發全鏈路所需的產品,提供正版授權采購、技術選型、個性化維保等服務,幫助客戶實現技術合規、降本增效與風險可控。慧都科技E-iceblue的官方授權代理商,提供E-iceblue系列產品免費試用,咨詢,正版銷售等于一體的專業化服務。E-iceblue旗下Spire系列產品是國產文檔處理領域的優秀產品,支持國產化,幫助企業高效構建文檔處理的應用程序。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都網