翻譯|行業資訊|編輯:吉煒煒|2025-09-28 09:56:58.720|閱讀 56 次
概述:本文將系統講解如何使用 C# 寫入 Excel 文件 ,包括不同數據類型的插入方法、批量數據寫入技巧、文件保存與導出,助力開發者提升數據處理與自動化能力。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
	 
 
Excel 作為最常用的數據管理與分析工具之一,被廣泛應用于各類數據處理場景。在 C# 應用程序開發過程中,無論是生成業務報表、導出數據庫查詢結果,還是實現自動化辦公流程,C# 寫入 Excel 的功能都扮演著至關重要的角色。
借助 Spire.XLS for .NET這一強大的第三方庫,開發者無需在運行環境中安裝 Microsoft Excel,即可高效、靈活地實現 Excel 文件的創建、寫入與導出操作。本文將系統講解如何 使用 C# 寫入 Excel 文件 ,包括不同數據類型的插入方法、批量數據寫入技巧、文件保存與導出,助力開發者提升數據處理與自動化能力。
歡迎加入Spire技術交流Q群(125237868),與更多小伙伴一起提升文檔開發技能~
Spire.XLS for .NET 是由 E-iceblue 開發的一款專業 Excel 庫。它允許開發人員在 C# 中寫入 Excel 文件,并執行包括創建、編輯、讀取和導出 Excel 文檔在內的多種操作,而無需安裝 Microsoft Excel。
主要功能包括:
方式一:通過 NuGet 安裝(推薦)
或直接使用包管理器控制臺:
PM> Install-Package Spire.XLS
方式二:手動安裝
安裝完成后,你就可以在 C# 中開始寫入 Excel 了。
第一步是創建一個新的工作簿并添加工作表,示例如下:
using Spire.Xls;
namespace CreateNewExcel
{
    class Program
    {
        static void Main(string[] args)
        {
            // 創建一個新的工作簿
            Workbook workbook = new Workbook();
            // 移除默認工作表
            workbook.Worksheets.Clear();
            // 添加一個工作表
            Worksheet sheet = workbook.Worksheets.Add("報告");
            // 保存空的 Excel 文件
            workbook.SaveToFile("新建文檔.xlsx", ExcelVersion.Version2016);
            workbook.Dispose();
        }
    }
}
此時,你已經成功創建了一個包含名為“報告”的工作表的空 Excel 文件。接下來我們將向其中寫入數據。
Spire.XLS 允許你直接將多種數據類型寫入 Excel 單元格。常見示例如下:
寫入文本
sheet.Range["A1"].Text = "你好 Excel!";寫入數字
sheet.Range["A2"].NumberValue = 123.45;寫入日期和時間
sheet.Range["A3"].DateTimeValue = DateTime.Now; sheet.Range["A3"].NumberFormat = "yyyy-mm-dd hh:mm";寫入布爾值
sheet.Range["A4"].BooleanValue = true;寫入 TimeSpan
sheet.Range["A5"].TimeSpanValue = new TimeSpan(2, 30, 0); sheet.Range["A5"].NumberFormat = "[h]:mm:ss";插入公式
sheet.Range["A6"].Formula = "=SUM(A2,100)";插入 HTML 格式字符串
string htmlText = "<span style=\"font-family: Times New Roman; color: blue; font-size: 15pt;\">HTML <strong>格式文本</strong></span>"; sheet.Range["A7"].HtmlString = htmlText;寫入通用值
sheet.Range["A8"].Value = "一般數據";
 
 處理大型數據集時,逐個單元格寫入效率很低。Spire.XLS 提供了直接插入數組和 DataTable 的方法,其他數據結構可以先轉換為數組或 DataTable。
使用 Worksheet.InsertArray方法,可以將一維或二維數組寫入指定區域:
string[,] data = {
    { "姓名", "年齡", "國家" },
    { "張三", "30", "中國" },
    { "李四", "28", "中國" },
    { "王五", "35", "加拿大" }
};
sheet.InsertArray(data, 1, 1);
效果圖:
								
									 
 
								
使用 InsertDataTable方法將 DataTable 數據導入到工作表:
DataTable dt = new DataTable();
dt.Columns.Add("ID", typeof(int));
dt.Columns.Add("產品", typeof(string));
dt.Columns.Add("價格", typeof(double));
dt.Rows.Add(1, "筆記本電腦", 8999);
dt.Rows.Add(2, "平板電腦", 5999);
dt.Rows.Add(3, "手機", 6999);
sheet.InsertDataTable(dt, true, 1, 1, true);
效果圖:
										
											 
 
										
雖然 Spire.XLS 沒有直接支持寫入 List 的方法,但你可以先將 List 轉換為 DataTable,再寫入 Excel。
using Spire.Xls;
using System.Data;
namespace WriteListToExcel
{
    class Program
    {
        static void Main(string[] args)
        {
            // 創建一個工作簿實例
            Workbook workbook = new Workbook();
            // 移除默認工作表
            workbook.Worksheets.Clear();
            // 添加一個工作表并命名
            Worksheet worksheet = workbook.Worksheets.Add("成績單");
            // 創建一個學生數據列表
            List<Student> students = new List<Student>
            {
                new Student("邁克爾", "約翰遜", 20, "計算機科學", 3.8),
                new Student("莎拉", "威廉姆斯", 22, "數學", 3.6),
                new Student("杰西卡", "布朗", 19, "物理", 3.9),
                new Student("大衛", "史密斯", 21, "化學", 3.7),
                new Student("艾米莉", "戴維斯", 23, "生物", 3.5)
            };
            // 將列表轉換為數據表
            DataTable dataTable = ConvertListToDataTable(students);
            // 將數據表寫入工作表
            worksheet.InsertDataTable(dataTable, true, 1, 1, true);
            // 設置列寬
            worksheet.AllocatedRange.ColumnWidth = 12;
            // 內容左對齊
            worksheet.AllocatedRange.HorizontalAlignment = HorizontalAlignType.Left;
            // 保存為Excel文件
            workbook.SaveToFile("學生成績單.xlsx", ExcelVersion.Version2016);
            // 釋放資源
            workbook.Dispose();
        }
        static DataTable ConvertListToDataTable(List<Student> students)
        {
            DataTable dataTable = new DataTable();
            // 添加列
            dataTable.Columns.Add("名字", typeof(string));
            dataTable.Columns.Add("姓氏", typeof(string));
            dataTable.Columns.Add("年齡", typeof(int));
            dataTable.Columns.Add("專業", typeof(string));
            dataTable.Columns.Add("績點", typeof(double));
            // 添加行
            foreach (var student in students)
            {
                DataRow row = dataTable.NewRow();
                row["名字"] = student.FirstName;
                row["姓氏"] = student.LastName;
                row["年齡"] = student.Age;
                row["專業"] = student.Major;
                row["績點"] = student.GPA;
                dataTable.Rows.Add(row);
            }
            return dataTable;
        }
    }
    class Student
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public int Age { get; set; }
        public string Major { get; set; }
        public double GPA { get; set; }
        public Student(string firstName, string lastName, int age, string major, double gpa)
        {
            FirstName = firstName;
            LastName = lastName;
            Age = age;
            Major = major;
            GPA = gpa;
        }
    }
}
效果圖:
												
													 
 
												
寫入數據后,你需要保存或導出 Excel 文件。Spire.XLS 支持多種格式(XLSX、CSV、PDF 等):
// 保存為 XLSX
workbook.SaveToFile("Output.xlsx", ExcelVersion.Version2016);
// 保存為 CSV
workbook.SaveToFile("Output.csv", ",", Encoding.UTF8);
// 導出為 PDF
workbook.SaveToFile("Output.pdf", FileFormat.PDF);
在 Web 應用中,還可以將文件保存到 MemoryStream: 
using (MemoryStream ms = new MemoryStream())
{
    workbook.SaveToStream(ms, FileFormat.Version2016);
    // 可寫入到 ASP.NET Response
}
日期/時間格式錯誤
數據覆蓋或錯位
大數據集寫入性能低
公式未正確計算
在 C# 中實現 Excel 寫入功能既直觀又高效。借助 Spire.XLS for .NET,無論是寫入單個數值、文本、日期,還是處理大規模結構化數據集,都能輕松勝任。該庫不僅支持單元格樣式、公式計算、條件格式等高級功能,還能精準控制輸出效果,確保最終生成的 Excel 文件數據準確、外觀專業。
通過數組或 DataTable 進行批量數據寫入,可大幅提升數據輸出效率,靈活應對不同體量的數據導出需求。若你正在尋找一種穩定、高效且無需依賴 Microsoft Excel 環境的文件生成方案,Spire.XLS for .NET 無疑是一個理想的技術選擇。
																		
可以。使用 workbook.LoadFromFile("file.xlsx") 打開文件,然后修改并保存。
不需要,它是一個獨立庫。
可以,它針對大數據集做了性能優化。
你可以通過以下方式設置字體、顏色、邊框和對齊方式:
sheet.Range["A1"].Style.Font.IsBold = true; sheet.Range["A1"].Style.Color = Color.Yellow; sheet.Range["A1"].Style.HorizontalAlignment = HorizontalAlignType.Left;
歡迎下載|體驗更多E-iceblue產品
獲取更多信息請咨詢 ;技術交流Q群(125237868)
————————————————————————————————————————
關于慧都科技:
慧都科技是一家行業數字化解決方案公司,長期專注于軟件、油氣與制造行業。公司基于深入的業務理解與管理洞察,以系統化的業務建模驅動技術落地,幫助企業實現智能化運營與長期競爭優勢。在軟件工程領域,我們提供開發控件、研發管理、代碼開發、部署運維等軟件開發全鏈路所需的產品,提供正版授權采購、技術選型、個性化維保等服務,幫助客戶實現技術合規、降本增效與風險可控。慧都科技E-iceblue的官方授權代理商,提供E-iceblue系列產品免費試用,咨詢,正版銷售等于一體的專業化服務。E-iceblue旗下Spire系列產品是國產文檔處理領域的優秀產品,支持國產化,幫助企業高效構建文檔處理的應用程序。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@ke049m.cn
文章轉載自:慧都網