在C#中使用OpenXML在Excel文档中设置文本居中
我有一个文档,我的asp.net页面正在创build,我需要alignment某些列的文本居中。 在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; }
我打开另一种方式,但我认为,解决scheme已经非常简单,我似乎无法得到它。 如果任何人都可以帮助,这将是伟大的。
注意:请记住,我正在使用OpenXML,不会使用Microsoft.Office.Interop.Excel
我认为问题在于,您正试图对列进行样式设置 , 因为需要将单个单元格设置为使用特定的水平alignment方式。
我环顾四周,发现以下MSDN文档:
http://msdn.microsoft.com/en-us/library/documentformat.openxml.spreadsheet.alignment.aspx
我也在这里find了一个代码示例(虽然我没有自己testing):
我自己大部分时间都是使用Interop,并且在编写电子表格时知道我使用了单元格而不是列或行。
您应该可以创build单个样式,并在创build单元格时将其应用于单元格。
以下方法适用于我
//using OfficeOpenXml; //using OfficeOpenXml.Style; workSheet.Cells[rowIndex, 22].Style.HorizontalAlignment = ExcelHorizontalAlignment.Right;
参考
- 使用开放XML SDK所需的基本格式
- 使用C#中的openXML在Excel表格中着色单元格
- OpenXML电子表格中的单元格样式(SpreadsheetML)
你可以尝试这个有一个合并单元格,编辑高度和列和水平和垂直alignment中心
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;
尝试这个
workSheet_range.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;