[英]Set text align to center in an Excel document using OpenXML with C#
我有一個我的 asp.net 頁面正在創建的文檔,我需要將某些列的文本居中對齊。 在將 openXML SDK 中的列手動居中后,我打開了文檔,但反映的代碼沒有達到預期的結果。
這就是我設置這些列的自定義寬度的方式,我想向這個函數(方法,whatevs)添加使文本居中的功能:
private static Column CreateColumnData(UInt32 StartColumnIndex, UInt32 EndColumnIndex, double ColumnWidth)
{
Column column;
column = new Column();
column.Min = StartColumnIndex;
column.Max = EndColumnIndex;
column.Width = ColumnWidth;
column.CustomWidth = true;
//the SDK says to add this next line to center the text but it doesn't work
column.Style = (UInt32Value)6U;
return column;
}
我認為問題是你正在嘗試設置列的樣式 ,當它是需要格式化為使用特定水平對齊的單個單元格時。
我環顧四周,發現了以下MSDN文檔:
http://msdn.microsoft.com/en-us/library/documentformat.openxml.spreadsheet.alignment.aspx
我在這里也找到了一個代碼示例(雖然我自己沒有測試過):
我自己大部分時間都使用Interop,並且知道在編寫電子表格時我設置了單元格,而不是列或行。
您應該能夠創建單個樣式,並在創建單元格時將其多次應用於單元格。
以下方法對我來說很好
//using OfficeOpenXml;
//using OfficeOpenXml.Style;
workSheet.Cells[rowIndex, 22].Style.HorizontalAlignment = ExcelHorizontalAlignment.Right;
參考
你可以嘗試這個有一個合並的單元格,編輯高度和列,並水平和垂直對齊中心
var worksheet = wb.Worksheets.Add("Overzicht");
// Adding text
worksheet.Cell("B2").Value = "Overzicht activiteit";
var rngMainTitle = worksheet.Range("B2:E3");
rngMainTitle.FirstCell().Style
.Font.SetBold()
.Fill.SetBackgroundColor(XLColor.CornflowerBlue)
.Alignment.SetHorizontal(XLAlignmentHorizontalValues.Center)
.Alignment.SetVertical(XLAlignmentVerticalValues.Center);
//Merge title cells
rngMainTitle.FirstRow().Merge();
worksheet.Column(2).Width = 31;
worksheet.Column(3).Width = 18;
worksheet.Column(4).Width = 18;
worksheet.Column(5).Width = 18;
worksheet.Row(2).Height = 25;
您只需選擇單元格並設置文本對齊:
ws.Cell("A1").Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center;
ws是你的工作表:
XLWorkbook workbook = new XLWorkbook();
var ws = workbook.Worksheets.Add("Text align");
如果您正在尋找如何對齊 excel 單元格中的文本,您需要在cellFormat<\/strong>對象上應用對齊
CellFormat cellFormat = new CellFormat() { NumberFormatId = 0, FontId = 0,
FillId = 0, BorderId = 0, ApplyAlignment = true };
Alignment alignment = new Alignment();
alignment.Vertical = VerticalAlignmentValues.Center;
alignment.Horizontal = HorizontalAlignmentValues.Center;
CellFormat.Alignment = alignment;
試試這個
workSheet_range.HorizontalAlignment =
Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.