如何使用 IronXL 在 C# 中設定儲存格資料格式:XLSX檔案操作
IronXL 允許透過設定 FormatString 屬性,進行XLSX檔案操作,在不依賴 Interop 的情況下,為 Excel 儲存格或範圍套用內建資料格式(如貨幣、百分比、日期及自訂數字格式)。
快速入門:在一行內將內建格式套用至單一儲存格
本範例展示如何使用 IronXL.Excel 的 API 建立新的 Excel 工作簿,並將內建格式套用至特定的儲存格。 無需任何 Interop 依賴項——只需設定 FormatString 並節省。
最小工作流程(5 個步驟)
- 下載 C# 庫以設定資料格式
- 開啟現有或建立新的 Excel 電子表格
- 將單元格、列、行或範圍的 **`FormatString`** 屬性設定為所需的資料格式
- 使用 **`BuiltinFormats`** 類別的內建資料格式
- 以各種文件類型導出已編輯的電子表格
如何在 Excel 中設定儲存格資料格式?
可透過儲存格和範圍來存取 FormatString 屬性。 因此,可以為單一儲存格、列、行和任何選定範圍設定資料格式。 當您需要在不使用 Interop 的情況下使用 C# 處理 Excel 檔案時,IronXL.Excel 的這種靈活性尤其強大。
資料格式化對於在試算表中清楚呈現資訊至關重要。 無論是建立有貨幣值的財務報告、有精確小數位的科學數據,或是以日期為基礎的分析,正確的格式都能確保您的資料既可讀又專業。 IronXL.Excel 透過直接的 API 提供對 Excel 格式化引擎的直接存取,簡化了這個過程。
:path=/static-assets/excel/content-code-examples/how-to/set-cell-data-format.cs
using IronXL;
using IronXL.Formatting;
using System;
using System.Linq;
// Create a new workbook
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Set the data format to 12300.00%
workSheet["A1"].Value = 123;
workSheet["A1"].FormatString = BuiltinFormats.Percent2;
// Set the data format to 123.0000
workSheet["A2"].Value = 123;
workSheet["A2"].FormatString = "0.0000";
// Set data display format to range
DateTime dateValue = new DateTime(2020, 1, 1, 12, 12, 12);
workSheet["A3"].Value = dateValue;
workSheet["A4"].Value = new DateTime(2022, 3, 3, 10, 10, 10);
workSheet["A5"].Value = new DateTime(2021, 2, 2, 11, 11, 11);
IronXL.Range range = workSheet["A3:A5"];
// Set the data format to 1/1/2020 12:12:12
range.FormatString = "MM/dd/yy h:mm:ss";
workBook.SaveAs("dataFormats.xlsx");
Imports IronXL
Imports IronXL.Formatting
Imports System
Imports System.Linq
' Create a new workbook
Private workBook As WorkBook = WorkBook.Create()
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
' Set the data format to 12300.00%
Private workSheet("A1").Value = 123
Private workSheet("A1").FormatString = BuiltinFormats.Percent2
' Set the data format to 123.0000
Private workSheet("A2").Value = 123
Private workSheet("A2").FormatString = "0.0000"
' Set data display format to range
Private dateValue As New DateTime(2020, 1, 1, 12, 12, 12)
Private workSheet("A3").Value = dateValue
Private workSheet("A4").Value = New DateTime(2022, 3, 3, 10, 10, 10)
Private workSheet("A5").Value = New DateTime(2021, 2, 2, 11, 11, 11)
Private range As IronXL.Range = workSheet("A3:A5")
' Set the data format to 1/1/2020 12:12:12
range.FormatString = "MM/dd/yy h:mm:ss"
workBook.SaveAs("dataFormats.xlsx")
如何在不轉換的情況下將儲存格值設定為字串?
在 IronXL 中設定數值時,請使用 StringValue 取代 Value,以直接將精確數值賦予儲存格,避免自動轉換。 這就像在 Excel 中的儲存格值前加上撇號一樣。 在處理產品代碼、電話號碼或其他應保留為文字的資料時,此技術尤其有用。 如需更進階的字串操作,請參閱如何在 .NET 中 寫入 Excel 值。
:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-assign-stringvalue.cs
// Assign value as string
workSheet["A1"].StringValue = "4402-12";
' Assign value as string
workSheet("A1").StringValue = "4402-12"
如何在 IronXL 中使用內建格式?
IronXL程式庫提供多種預定義的格式字串,可透過 IronXL.Formatting.BuiltinFormats 類別存取,用於格式化 Excel 儲存格。 這樣您就可以自訂資料在 Excel 表格中的顯示方式。 這些內建格式涵蓋最常見的商業情境,並與所有 Excel 版本相容。
當 程式化地建立試算表時,套用一致的格式對於維持整個文件的專業標準至關重要。 BuiltinFormats 類別提供超過 30 種預先設定的格式範本,這些範本與 Excel 的標準格式選項相符。
:path=/static-assets/excel/content-code-examples/how-to/set-cell-data-format-builtin-formats.cs
using IronXL;
using IronXL.Formatting;
// Create a new workbook
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Use builtin formats
workSheet["A1"].Value = 123;
workSheet["A1"].FormatString = BuiltinFormats.Accounting0;
workBook.SaveAs("builtinDataFormats.xlsx");
Imports IronXL
Imports IronXL.Formatting
' Create a new workbook
Private workBook As WorkBook = WorkBook.Create()
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
' Use builtin formats
Private workSheet("A1").Value = 123
Private workSheet("A1").FormatString = BuiltinFormats.Accounting0
workBook.SaveAs("builtinDataFormats.xlsx")
有哪些內建資料格式可用?
對於 Duration 類型,輸入值以天為單位表示。 例如,1 天等於 24 小時,1.05 天等於 25 小時 12 分鐘。 這在 使用 Excel 資料涉及時間追蹤或專案管理時特別有用。 以下是可用的格式類型:
每種格式類型的用途是什麼?
General:預設格式,顯示未經特定格式化的數字。Duration1:以"mm:ss"格式顯示時間長度(分鐘與秒)。Duration2:以"[h]:mm:ss"格式顯示時長(小時、分鐘、秒)。Duration3:以"mm:ss.0"的形式顯示持續時間(單位為分鐘、秒和毫秒)。Accounting0:無小數點的會計格式,負數使用括號,例如 "#,##0_);(#,##0)"。Accounting0Red:無小數點的會計格式,負數以紅色顯示,例如 "#,##0_);Red."Accounting2:採用兩位小數的會計格式,負數需以括號標示,例如"#,##0.00;(#,##0.00)"。Accounting2Red:採用兩位小數的會計格式,負數以紅色顯示,例如 "#,##0.00_);Red."Time1:採用 12 小時制並標示 AM/PM,格式如"h:mm AM/PM"。Time2:12 小時制格式,包含秒數及上午/下午標示,例如"h:mm:ss AM/PM"。Time3:採用不包含秒數的 24 小時格式,例如"h:mm"。Time4:24 小時制格式,包含秒數,例如"h:mm:ss"。ShortDate:短日期格式,例如"m/d/yy"。ShortDateAndTime:簡短的日期與時間格式,例如"m/d/yy h:mm"。LongDate1:包含月、日、年的長日期格式,例如"d-mmm-yy"。LongDate2:包含日期的長格式日期,月份採用"d-mmm"的縮寫形式。LongDate3:採用"mmm-yy"格式(月份縮寫與年份)的長日期格式。Fraction1:如"# ?/?"這類僅含一位數的小數值。Fraction2:如"# ??/??"這類兩位數的分數值。Scientific1:帶有一個小數點的科學記法,例如 "##0.0E+0."Scientific2:採用保留兩位小數的科學記法,例如"0.00E+00"。Percent:百分比應不包含小數,例如"0%"。Percent2:百分比格式應保留兩位小數,例如"0.00%"。Currency0:不包含小數點的貨幣格式,負數需使用括號,例如 "$#,##0_);($#,##0)"。Currency0Red:不包含小數的貨幣數值,負數(如 "$#,##0_);Red.")以紅色顯示。Currency2:貨幣格式保留兩位小數,負數需使用括號,例如 "$#,##0.00;($#,##0.00)"。Currency2Red:貨幣數值保留兩位小數,負數(如 "$#,##0.00_);Red.")以紅色顯示。Thousands0:數字需使用千位分隔符,且不包含小數,例如"#,##0."Thousands2:數字需使用千位分隔符,並保留兩位小數,例如 "#,##0.00."Number0:不帶小數點的數字,例如"0."Number2:如"0.00"這類小數點後兩位的數字Text:類似"@."的純文字格式
Excel 中的資料格式化和數字格式化可控制單元格中的數字、日期、時間和其他資料的顯示方式,以提高可讀性並確保資料的準確性。 透過資料格式,您可以將資訊以特定格式(例如百分比或貨幣)呈現。 同樣,數字格式允許您自訂小數位數和顯示選項。
如何在不同範圍套用多種格式?
在實際應用中,您經常需要將不同的格式套用到試算表的各個部分。 本範例示範格式化具有多種資料類型的財務報告。當 以 C# 從資料庫或其他資料來源匯出至 Excel 時,此方法尤其有用:
using IronXL;
using IronXL.Formatting;
using System;
// Create a financial report with multiple formats
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Headers
workSheet["A1"].Value = "Financial Report Q4 2023";
workSheet["A1"].Style.Font.Bold = true;
// Revenue section with currency formatting
workSheet["A3"].Value = "Revenue";
workSheet["B3"].Value = 2500000;
workSheet["B3"].FormatString = BuiltinFormats.Currency0;
// Growth percentage
workSheet["A4"].Value = "YoY Growth";
workSheet["B4"].Value = 0.157;
workSheet["B4"].FormatString = BuiltinFormats.Percent2;
// Date formatting
workSheet["A6"].Value = "Report Date";
workSheet["B6"].Value = DateTime.Now;
workSheet["B6"].FormatString = BuiltinFormats.LongDate1;
// Apply accounting format to expense columns
IronXL.Range expenseRange = workSheet["B8:B12"];
expenseRange.FormatString = BuiltinFormats.Accounting2Red;
// Save the formatted report
workBook.SaveAs("FinancialReport_Q4_2023.xlsx");
using IronXL;
using IronXL.Formatting;
using System;
// Create a financial report with multiple formats
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Headers
workSheet["A1"].Value = "Financial Report Q4 2023";
workSheet["A1"].Style.Font.Bold = true;
// Revenue section with currency formatting
workSheet["A3"].Value = "Revenue";
workSheet["B3"].Value = 2500000;
workSheet["B3"].FormatString = BuiltinFormats.Currency0;
// Growth percentage
workSheet["A4"].Value = "YoY Growth";
workSheet["B4"].Value = 0.157;
workSheet["B4"].FormatString = BuiltinFormats.Percent2;
// Date formatting
workSheet["A6"].Value = "Report Date";
workSheet["B6"].Value = DateTime.Now;
workSheet["B6"].FormatString = BuiltinFormats.LongDate1;
// Apply accounting format to expense columns
IronXL.Range expenseRange = workSheet["B8:B12"];
expenseRange.FormatString = BuiltinFormats.Accounting2Red;
// Save the formatted report
workBook.SaveAs("FinancialReport_Q4_2023.xlsx");
Imports IronXL
Imports IronXL.Formatting
Imports System
' Create a financial report with multiple formats
Dim workBook As WorkBook = WorkBook.Create()
Dim workSheet As WorkSheet = workBook.DefaultWorkSheet
' Headers
workSheet("A1").Value = "Financial Report Q4 2023"
workSheet("A1").Style.Font.Bold = True
' Revenue section with currency formatting
workSheet("A3").Value = "Revenue"
workSheet("B3").Value = 2500000
workSheet("B3").FormatString = BuiltinFormats.Currency0
' Growth percentage
workSheet("A4").Value = "YoY Growth"
workSheet("B4").Value = 0.157
workSheet("B4").FormatString = BuiltinFormats.Percent2
' Date formatting
workSheet("A6").Value = "Report Date"
workSheet("B6").Value = DateTime.Now
workSheet("B6").FormatString = BuiltinFormats.LongDate1
' Apply accounting format to expense columns
Dim expenseRange As IronXL.Range = workSheet("B8:B12")
expenseRange.FormatString = BuiltinFormats.Accounting2Red
' Save the formatted report
workBook.SaveAs("FinancialReport_Q4_2023.xlsx")
本範例展示了不同格式類型如何結合來建立專業的財務文件。 對於更進階的格式化選項,包括 條件格式化,您可以進一步延伸這些概念。
在處理大型資料集或以程式化方式建立報表時,格式的一致性變得非常重要。 IronXL.Excel 的格式化系統可與其他功能無縫整合,例如 math 函數和 編輯公式,讓您可以建立完全自動化的報表解決方案。
對於從 Office Interop 轉移過來或追求更佳效能的開發人員而言,IronXL 的格式化系統提供了顯著的優勢。 與傳統方法不同,您可以有效率地格式化成千上萬的單元格,而無需 COM interop 開銷。 若要瞭解有關 Excel 自動化最佳實務的更多資訊,請瀏覽我們全面的 Excel 文件。
常見問題解答
在不使用 Interop 的情況下,如何在 C# 中格式化 Excel 單元格?
IronXL.Excel 提供了一種簡單的方式來格式化 Excel 單元格,而無需 Interop 相依性。您可以在儲存格或範圍上使用 FormatString 屬性來套用內建格式,例如貨幣、百分比、日期和自訂數字格式。只需使用 IronXL 建立或開啟工作簿,並將 FormatString 屬性設定為所需格式即可。
將貨幣格式化套用至儲存格的最快方法是什麼?
使用 IronXL,您只需一行代碼即可套用貨幣格式。建立工作簿後,只需使用:book.DefaultWorkSheet["B2"].FormatString = IronXL.Formatting.BuiltinFormats.Currency2; 即可在儲存格 B2 套用小數點後 2 位的內建貨幣格式。
我可以一次格式化多個儲存格嗎?
是的,IronXL 允許您透過 FormatString 屬性來格式化個別儲存格、整列、行或任何選取的範圍。這種靈活性可讓您輕鬆地在 Excel 試算表的多個儲存格中套用一致的格式,而無需逐一遍歷每個儲存格。
設定儲存格值時,如何防止自動資料轉換?
IronXL 提供 StringValue 屬性,可將儲存格值設定為字串,而無需自動轉換。與其使用 Value 屬性,不如使用 StringValue 來為儲存格指定精確的值。其作用類似於在 Excel 中的儲存格值前放置撇號,對於產品代碼、電話號碼或其他應保留為文字的資料特別有用。
有哪些內建格式選項?
IronXL 透過 IronXL.Formatting.BuiltinFormats 類別提供全面的預定義格式字串。其中包括各種貨幣格式、日期和時間格式、百分比顯示、科學記數法和自訂數字格式,讓您可以自訂 Excel 試算表中的資料顯示方式。
我需要安裝 Microsoft Excel 才能使用儲存格格式化功能嗎?
不,IronXL 獨立運作,不需要 Microsoft Excel 或 Interop 的依賴。該函式庫包含自己的格式化引擎,可直接操作 Excel 檔案,因此非常適合伺服器環境或未安裝 Excel 的系統。

