C#實現(xiàn)設置Excel表格中文本對齊方式和格式
在 Excel 中,對齊、換行和旋轉是用于設置單元格內容顯示方式的功能。合理的設置這些文本選項可以幫助用戶更好地組織和展示 Excel 表格中的數據,使表格更加清晰、易讀,提高數據的可視化效果。本文將介紹如何在.NET 程序中通過C# 設置Excel單元格中文本的對齊方式、方向以及換行。
安裝所需.NET庫
本文需要用到一個名為 Free Spire.XLS for .NET 的免費國產庫。該庫支持多種Excel文檔操作功能,包括生成、讀取、編輯、打印、轉換等。
該庫可以直接通過Visual Studio > NuGet程序包管理器中搜索 “FreeSpire.XLS” 來安裝。
C# 設置Excel中文本的對齊方式、方向以及換行
免費Spire.XLS庫的 CellStyle 類提供了多種屬性來設置單元樣式包括其中的文本對齊。旋轉等。具體步驟參考:
- 創(chuàng)建一個Excel工作簿并獲取其中指定工作表。
- 通過 Worksheet.Range[] 屬性獲取指定單元格或單元格范圍
- 通過 CellRange.Style 屬性獲取單元格樣式。
- 通過 CellStyle.HorizontalAlignment 屬性設置單元格中文字的水平對齊方式,包括左對齊(HorizontalAlignType.Left)、水平居中對齊(HorizontalAlignType.Center)、和右對齊(HorizontalAlignType.Right)。
- 通過 CellStyle.VerticalAlignment 屬性設置單元格中文字的垂直對齊方式,包括靠上對齊(VerticalAlignType.Top)、垂直居中對齊(VerticalAlignType.Center)、和靠下對齊(VerticalAlignType.Bottom)。
- 通過 CellStyle.Rotation 屬性旋轉單元格中的文字旋轉至指定角度。
- 通過 CellStyle.WrapText 屬性設置文本自動換行,手動換行可以添加換行符\n 。
- 保存生成文件。
C#代碼:
using Spire.Xls;
namespace SetExcelColumnWidth
{
class Program
{
static void Main(string[] args)
{
// 創(chuàng)建工作簿
Workbook wookbook = new Workbook();
// 獲取第一張工作表
Worksheet sheet = wookbook.Worksheets[0];
// 添加說明文字
sheet.Range["B1"].Text = "文字對齊方式";
sheet.Range["D1"].Text = "文字方向";
sheet.Range["F1"].Text = "文字換行";
sheet.Range["B1:F1"].Style.Font.IsBold = true;
sheet.Range["B1:F1"].Style.KnownColor = ExcelColors.LightGreen;
// 左對齊
sheet.Range["B3"].Text = "左對齊";
sheet.Range["B3"].Style.HorizontalAlignment = HorizontalAlignType.Left;
// 水平居中
sheet.Range["B4"].Text = "水平居中";
sheet.Range["B4"].Style.HorizontalAlignment = HorizontalAlignType.Center;
// 右對齊
sheet.Range["B5"].Text = "右對齊";
sheet.Range["B5"].Style.HorizontalAlignment = HorizontalAlignType.Right;
// 居上
sheet.Range["B7"].Text = "靠上";
sheet.Range["B7"].Style.VerticalAlignment = VerticalAlignType.Top;
// 垂直居中
sheet.Range["B8"].Text = "垂直居中";
sheet.Range["B8"].Style.VerticalAlignment = VerticalAlignType.Center;
// 居下
sheet.Range["B9"].Text = "靠下";
sheet.Range["B9"].Style.VerticalAlignment = VerticalAlignType.Bottom;
// 分散對齊并居中
sheet.Range["B10"].Text = "水平分散對齊+垂直居中";
sheet.Range["B10"].Style.HorizontalAlignment = HorizontalAlignType.Distributed;
sheet.Range["B10"].Style.VerticalAlignment = VerticalAlignType.Center;
// 逆時針旋轉45°
sheet.Range["D7"].Text = "旋轉45°";
sheet.Range["D7"].Style.Rotation = 45;
// 逆時針旋轉90°
sheet.Range["D8"].Text = "旋轉90°";
sheet.Range["D8"].Style.Rotation = 90;
// 順時針旋轉45°
sheet.Range["D9"].Text = "旋轉-45°";
sheet.Range["D9"].Style.Rotation = -45;
// 順時針旋轉90°
sheet.Range["D10"].Text = "旋轉-90°";
sheet.Range["D10"].Style.Rotation = -90;
// 添加‘\n'進行文字換行
sheet.Range["F8"].Text = "這是\n手動\n換行";
// 自動換行
sheet.Range["F9"].Text = "這一段話設置了自動換行";
sheet.Range["F9"].Style.WrapText = true;
// 設置行高列寬
sheet.Columns[1].ColumnWidth = 15;
sheet.Columns[3].ColumnWidth = 15;
sheet.Columns[5].ColumnWidth = 15;
sheet.Range["B3:B5"].RowHeight = 15;
sheet.Range["B7:B10"].RowHeight = 50;
// 保存文檔
wookbook.SaveToFile("Excel文本對齊.xlsx", FileFormat.Version2013);
}
}
}
生成文檔:

知識擴展
C# 對Excel 單元格格式, 及行高、 列寬、 單元格邊框線、 凍結設置
1.對行高,列寬、單元格邊框等的設置
這篇簡短的文字對單元格的操作總結的比較全面,特此轉載過來。
private _Workbook _workBook = null;
private Worksheet _workSheet = null;
private Excel.Application _excelApplicatin = null;
_excelApplicatin = new Excel.Application();
_excelApplicatin.Visible = true;
_excelApplicatin.DisplayAlerts = true;
_workBook = _excelApplicatin.Workbooks.Add(XlSheetType.xlWorksheet);
_workSheet = (Worksheet)_workBook.ActiveSheet;
_workSheet.Name = "workSheetName";
//打開已存在的Excel
string strExcelPathName = AppDomain.CurrentDomain.BaseDirectory + "excelSheetName.xls";
Excel.Workbook workBook = application.Workbooks.Open(strExcelPathName, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
//讀取已打開的Excel
Excel.Worksheet workSheet1 = (Excel.Worksheet)workBook.Sheets["SheetName1"];
Excel.Worksheet workSheet2 = (Excel.Worksheet)workBook.Sheets["SheetName2"];
//添加一個workSheet
Worksheet workSheet = (Worksheet)workBook.Worksheets.Add(System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing);
//RowHeight "1:1"表示第一行, "1:2"表示,第一行和第二行
((Excel.Range)_workSheet.Rows["1:1", System.Type.Missing]).RowHeight = 100;
//ColumnWidth "A:B"表示第一列和第二列, "A:A"表示第一列
((Excel.Range)_workSheet.Columns["A:B", System.Type.Missing]).ColumnWidth = 10;
// EXCEL操作(需要凍結的字段 按住ALT+W 再按F)
Excel.Range excelRange = _workSheet .get_Range(_workSheet .Cells[10, 5], _workSheet .Cells[10, 5]);
excelRange.Select();
excelApplication.ActiveWindow.FreezePanes = true;
//Borders.LineStyle 單元格邊框線
Excel.Range excelRange = _workSheet.get_Range(_workSheet.Cells[2, 2], _workSheet.Cells[4, 6]);
//單元格邊框線類型(線型,虛線型)
excelRange.Borders.LineStyle = 1;
excelRange.Borders.get_Item(XlBordersIndex.xlEdgeTop).LineStyle = Excel.XlLineStyle.xlContinuous;
//指定單元格下邊框線粗細,和色彩
excelRange.Borders.get_Item(XlBordersIndex.xlEdgeBottom).Weight = Excel.XlBorderWeight.xlMedium;
excelRange.Borders.get_Item(XlBordersIndex.xlEdgeBottom).ColorIndex =3;
//設置字體大小
excelRange.Font.Size = 15;
//設置字體是否有下劃線
excelRange.Font.Underline = true;
//設置字體在單元格內的對其方式
excelRange.HorizontalAlignment = XlHAlign.xlHAlignCenter;
//設置單元格的寬度
excelRange.ColumnWidth = 15;
//設置單元格的背景色
excelRange.Cells.Interior.Color = System.Drawing.Color.FromArgb(255, 204, 153).ToArgb();
// 給單元格加邊框
excelRange.BorderAround(XlLineStyle.xlContinuous, XlBorderWeight.xlThick,
XlColorIndex.xlColorIndexAutomatic, System.Drawing.Color.Black.ToArgb());
//自動調整列寬
excelRange.EntireColumn.AutoFit();
// 文本水平居中方式
excelRange.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
//文本自動換行
excelRange.WrapText = true;
//填充顏色為淡紫色
excelRange.Interior.ColorIndex = 39;
//合并單元格
excelRange.Merge(excelRange.MergeCells);
_workSheet.get_Range("A15", "B15").Merge(_workSheet.get_Range("A15", "B15").MergeCells);
/// <summary>
/// 常用顏色定義,對就Excel中顏色名
/// </summary>
public enum ColorIndex
{
無色 = -4142, 自動 = -4105, 黑色 = 1, 褐色 = 53, 橄欖 = 52, 深綠 = 51, 深青 = 49,
深藍 = 11, 靛藍 = 55, 灰色80 = 56, 深紅 = 9, 橙色 = 46, 深黃 = 12, 綠色 = 10,
青色 = 14, 藍色 = 5, 藍灰 = 47, 灰色50 = 16, 紅色 = 3, 淺橙色 = 45, 酸橙色 = 43,
海綠 = 50, 水綠色 = 42, 淺藍 = 41, 紫羅蘭 = 13, 灰色40 = 48, 粉紅 = 7,
金色 = 44, 黃色 = 6, 鮮綠 = 4, 青綠 = 8, 天藍 = 33, 梅紅 = 54, 灰色25 = 15,
玫瑰紅 = 38, 茶色 = 40, 淺黃 = 36, 淺綠 = 35, 淺青綠 = 34, 淡藍 = 37, 淡紫 = 39,
白色 = 2
}Code segment2
range.NumberFormatLocal = "@"; //設置單元格格式為文本
range = (Range)worksheet.get_Range("A1", "E1"); //獲取Excel多個單元格區(qū)域:本例做為Excel表頭
range.Merge(0); //單元格合并動作
worksheet.Cells[1, 1] = "Excel單元格賦值"; //Excel單元格賦值
range.Font.Size = 15; //設置字體大小
range.Font.Underline=true; //設置字體是否有下劃線
range.Font.Name="黑體"; 設置字體的種類
range.HorizontalAlignment=XlHAlign.xlHAlignCenter; //設置字體在單元格內的對其方式
range.ColumnWidth=15; //設置單元格的寬度
range.Cells.Interior.Color=System.Drawing.Color.FromArgb(255,204,153).ToArgb(); //設置單元格的背景色
range.Borders.LineStyle=1; //設置單元格邊框的粗細
range.BorderAround(XlLineStyle.xlContinuous,XlBorderWeight.xlThick,XlColorIndex.xlColorIndexAutomatic,System.Drawing.Color.Black.ToArgb()); //給單元格加邊框
range.Borders.get_Item(Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeTop).LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlLineStyleNone; //設置單元格上邊框為無邊框
range.EntireColumn.AutoFit(); //自動調整列寬
Range.HorizontalAlignment= xlCenter; // 文本水平居中方式
Range.VerticalAlignment= xlCenter //文本垂直居中方式
Range.WrapText=true; //文本自動換行
Range.Interior.ColorIndex=39; //填充顏色為淡紫色
Range.Font.Color=clBlue; //字體顏色
xlsApp.DisplayAlerts=false; //保存Excel的時候,不彈出是否保存的窗口直接進行保存Excel Interior.ColorIndex色彩列表

對用的Interior.ColorIndex色彩列表。
在C# 對Excel編程中的使用:
for (int i = 5; i < countRow + 1; i++)
{
string strKB = null;
Microsoft.Office.Interop.Excel.Range kbrng = (Microsoft.Office.Interop.Excel.Range)sheSource.Cells[i, 1];
if (kbrng.Value2 != null)
strKB = kbrng.Value2.ToString();
if (strTotal.Contains(strKB))
kbrng.Interior.ColorIndex = 3;
}2.常見的Excel單元格格式設置內容
數字(Range.NumberFormatlocal 屬性)
常規(guī):
Range.NumberFormatlocal = "G/通用格式"
數值:
Range.NumberFormatlocal = "0.000_" --保留小 數位數為3 (此處“_”表示:留下一個與下一個字符同等寬度的空格)
Range.NumberFormatlocal = "0" --不要小數
Range.NumberFormatlo cal = "#,##0.000" --保留小數位數為3,并使用千位分隔符
貨幣:
Range.NumberFormatlocal = "$#,##0.000"
百分比:
Range.NumberFormatlocal = "0.000%"
分數:
Range.NumberFormatlocal = "# ?/?"
科學計數:
Range.NumberFormatlocal = "0.00E+00"
文本
Range.NumberFormatlocal = "@"
特殊:
- Range.NumberFormatlocal = "000000"---郵政編碼
- Range.NumberFormatlocal = "[DBNum1]G/通用格式"---中文小寫數字
- Range.NumberFormatlocal = "[DBNum2]G/通用格式"---中文大寫數字
- Range.NumberFormatlocal = "[DBNum2][$RMB]G/通用格式"---人民幣大寫
對齊
- 水平對齊:Range.HorizontalAlignment = etHAlignCenter ---居中
- 垂 直對齊:Range.VerticalAlignment = etVAlignCenter---居中
- 是否自動換行:Range.WrapText = True
- 是否縮小字體填充:Range.ShrinkToFit = True
- 是否合并單元格:Range.MergeCells = False
- 文字豎排:Range.Orientation = etVertical
- 文字傾斜度數:Range.Orientation = 45 -----傾斜45度
字體(Font對象)
- 字體名稱:Font.Name = "華文行楷"
- 字形: Font.FontStyle = "常規(guī)"
- 字號:Font.Size = "10"
- 下劃線:Font.Strikethrough = True; Font.Underline = etUnderlineStyleDouble ---雙下劃線
- 上標:Font.Superscript = True
- 下 標:Font.SubScript = True
- 刪除線:Font.OutlineFont = True
邊框(Borders對象)
- Borders.Item(etEdgeTop):上邊框
- Borders.Item(etEdgeLeft):左邊框
- Borders.Item (etEdgeRight):右邊框
- Borders.Item(etEdgeBottom):下邊框
- Borders.Item(etDiagonalDown) :左上--右下邊框
- Borders.Item(etDiagonalUp):左下--右上邊框
- Border.LineStyle = etContinuous 線條樣式
到此這篇關于C#實現(xiàn)設置Excel表格中文本對齊方式和格式的文章就介紹到這了,更多相關C#設置Excel表格文本格式內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
詳解C#中的System.Timers.Timer定時器的使用和定時自動清理內存應用
這篇文章主要介紹了詳解C#中的System.Timers.Timer定時器的使用和定時自動清理內存應用,需要的朋友可以參考下2017-06-06
CPF?使用C#的Native?AOT?發(fā)布程序的詳細過程
這篇文章主要介紹了CPF?使用C#的Native?AOT?發(fā)布程序,本文給大家介紹的非常詳細,對大家的學習或工作具體一定的參考借鑒價值,需要的朋友可以參考下2022-03-03

