如何在 C# 中使用 IronXL 設定儲存格資料格式
IronXL 允許透過設定 FormatString 屬性,在無需 Interop 依賴的情況下,對單一儲存格或範圍套用內建的資料格式(如貨幣、百分比、日期及自訂數字格式)來格式化 Excel 儲存格。
快速入門:在一行內將內建格式套用至單一儲存格
此範例展示如何使用 IronXL 的 API 建立新的 Excel 工作簿,並將內建格式套用至特定儲存格。 無需任何 Interop 依賴項——只需設定 FormatString 並儲存即可。
簡化工作流程(5 個步驟)
- 下載 C# 函式庫以設定資料格式
- 開啟現有或建立新的 Excel 試算表
- 將儲存格、欄位、列或範圍的 FormatString 屬性設定為所需資料格式
- 使用 BuiltinFormats 類別中的內建資料格式
- 將編輯後的試算表匯出為各種檔案格式
如何在 Excel 中設定儲存格資料格式?
可透過儲存格和範圍來存取 FormatString 屬性。 因此,可以針對個別儲存格、欄位、列以及任何選取的範圍設定資料格式。 這種靈活性使 IronXL 在您需要於 C# 中處理 Excel 檔案且無需使用 Interop 時,展現出特別強大的功能。
資料格式化對於在試算表中清晰呈現資訊至關重要。 無論是製作包含貨幣數值的財務報表、精確小數位的科學數據,還是基於日期的分析報告,正確的格式設定都能確保您的資料既易於閱讀又具 Professional 性。 IronXL 透過直觀的 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 版本相容。
在程式化建立試算表時,採用一致的格式設定對於維持文件整體的 Professional 標準至關重要。 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 的格式化系統能與數學函數及公式編輯等其他功能無縫整合,讓您建立完全自動化的報表解決方案。
對於從 Office Interop 遷移而來或尋求更佳效能的開發人員而言,IronXL 的格式化系統提供了顯著優勢。 與傳統方法不同,您無需承受 COM 互通的額外負擔,即可高效格式化數千個儲存格。 若要進一步了解 Excel 自動化最佳實務,請參閱我們的完整 Excel 文件。
常見問題
如何在不使用 Interop 的情況下,於 C# 中格式化 Excel 儲存格?
IronXL 提供了一種無需依賴 Interop 的簡易方式來格式化 Excel 儲存格。您可以透過儲存格或範圍的 FormatString 屬性,套用貨幣、百分比、日期及自訂數字格式等內建格式。只需使用 IronXL 建立或開啟工作簿,並將 FormatString 屬性設定為您所需的格式即可。
要將貨幣格式套用至儲存格,最快速的方法是什麼?
using IronXL,您只需一行程式碼即可套用貨幣格式。建立工作簿後,只需使用:book.DefaultWorkSheet["B2"].FormatString = IronXl.Formatting.BuiltinFormats.Currency2; 此程式碼將為 B2 儲存格套用內建的貨幣格式,並保留 2 位小數。
我可以一次格式化多個儲存格嗎?
是的,IronXL 允許您透過 FormatString 屬性,對單一儲存格、整列、整行或任何選取範圍進行格式設定。這種靈活性讓您能輕鬆地在 Excel 試算表的多個儲存格中套用一致的格式,而無需逐一遍歷每個儲存格。
如何在設定儲存格值時防止自動資料轉換?
IronXL 提供 StringValue 屬性,可將儲存格值設定為字串而不進行自動轉換。請改用 StringValue 取代 Value 屬性,以將精確的值賦予儲存格。此功能類似於在 Excel 中於儲存格值前加上單引號,對於產品代碼、電話號碼或其他應保持為文字的資料特別有用。
有哪些內建的格式選項可用?
IronXL 透過 IronXl.Formatting.BuiltinFormats 類別提供一套完整的預定義格式字串集合。這些格式包含各種貨幣格式、日期與時間格式、百分比顯示、科學記法以及自訂數字格式,讓您能夠自訂 Excel 試算表中的資料顯示方式。
我需要安裝 Microsoft Excel 才能使用儲存格格式設定功能嗎?
不,IronXL 可獨立運作,無需依賴 Microsoft Excel 或 Interop。此程式庫內建專屬格式化引擎,能直接處理 Excel 檔案,因此非常適合用於未安裝 Excel 的伺服器環境或系統。

