EPPlus:文本垂直居中合并单元格无效。

3
我正在尝试将文本垂直居中,但是无法实现。文本在合并单元格的底部显示。以下是未能正常工作的最小化代码。
// get handle to the existing worksheet
ExcelWorksheet worksheet = xlPackage.Workbook.Worksheets.Add("mysheet");

//[row,col]
worksheet.Cells[1, 1].Value = "a1";
worksheet.Cells[2, 1].Value = "a1";
worksheet.Cells[3, 1].Value = "a1";
worksheet.Cells[4, 1].Value = "a1";
worksheet.Cells[5, 1].Value = "a1";
worksheet.Cells[6, 1].Value = "a1";

//comment out below six lines to make it work
worksheet.Cells[1, 2].Value = "11";
worksheet.Cells[2, 2].Value = "12";
worksheet.Cells[3, 2].Value = "13";
worksheet.Cells[4, 2].Value = "14";
worksheet.Cells[5, 2].Value = "15";
worksheet.Cells[6, 2].Value = "16";
//comment out above six lines to make it work

worksheet.Cells["A1:A6"].Merge = true;
worksheet.Cells["A1:A6"].Style.VerticalAlignment = ExcelVerticalAlignment.Center;

xlPackage.Save();

请帮忙。

在结尾添加以下代码即可使其正常工作:

worksheet.Column(1).Style.VerticalAlignment = ExcelVerticalAlignment.Center; worksheet.Column(2).Style.VerticalAlignment = ExcelVerticalAlignment.Center;

这意味着我必须将所有列都居中对齐,才能将第一列居中对齐。


应该可以。也许发布更多的代码,可能是其他东西覆盖了它。 - Ernie S
你使用的是哪个版本的EPPlus?您发布的代码是否是您对该软件包执行的唯一操作?当我尝试时,它对我正常工作。 - Ernie S
它是EPPlus 4.0.5.0版本。是的,发布的代码是我所做的唯一事情,我已将我的代码简化到最少,以便专注于问题本身。但在我的端上无法工作。 - Gurpreet
2个回答

7

试一下这个...

using OfficeOpenXml.Style;
worksheet.Cells["A1:A6"].Style.VerticalAlignment = 
ExcelVerticalAlignment.Center;

或者

worksheet.Cells["A1:A6"].Style.VerticalAlignment = OfficeOpenXml.Style.ExcelVerticalAlignment.Center;


2
对于使用 Powershell 的朋友们:$worksheet.Cells[$worksheet.Dimension.Address].Style.VerticalAlignment = [OfficeOpenXml.Style.ExcelVerticalAlignment]::Top $worksheet.Cells[$worksheet.Dimension.Address].Style.HorizontalAlignment = [OfficeOpenXml.Style.ExcelHorizontalAlignment]::Left - CrazyIvan1974

-3

试试这个...

worksheet.Range["A1", "A6"].VerticalAlignment = XlHAlign.xlHAlignCenter;

如果可以的话,请告诉我。


需要 Microsoft.Office.Interop.Excel,它需要 MS Office。我没有安装它。 - Gurpreet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接