C# 使用EPPlus显示具有垂直文本的单元格
使用EPPlus,如何将单元格文本更改为垂直文本显示,如下所示 在excel中,您可以通过在设置单元格方向时单击此按钮来执行此操作 我正在尝试使用C# 使用EPPlus显示具有垂直文本的单元格,c#,.net,excel,epplus,C#,.net,Excel,Epplus,使用EPPlus,如何将单元格文本更改为垂直文本显示,如下所示 在excel中,您可以通过在设置单元格方向时单击此按钮来执行此操作 我正在尝试使用.TextRotation但这并没有达到我想要的效果,将其设置为180度会得到类似的结果 ws.Cells[row,2].Style.TextRotation=180,.TextRotation只接受一个整数值,所以我想知道如何获得“Text”按钮值,这肯定是您发现的错误。有一种方法,但它是相当丑陋的。当您将单元格创建的StyleID更改为默认值
.TextRotation
但这并没有达到我想要的效果,将其设置为180度会得到类似的结果
ws.Cells[row,2].Style.TextRotation=180
,.TextRotation
只接受一个整数值,所以我想知道如何获得“Text”按钮值,这肯定是您发现的错误。有一种方法,但它是相当丑陋的。当您将单元格创建的StyleID
更改为默认值以外的任何值时,您可以使用它:
[TestMethod]
public void Text_Rotate_Test()
{
//https://stackoverflow.com/questions/57603348/display-cell-with-vertical-text-using-epplus
var fileInfo = new FileInfo(@"c:\temp\Text_Rotate_Test.xlsx");
if (fileInfo.Exists)
fileInfo.Delete();
using (var pck = new ExcelPackage(fileInfo))
{
var workbook = pck.Workbook;
var worksheet = workbook.Worksheets.Add("Sheet1");
var cell = worksheet.Cells[1, 1];
cell.Value = "Test Text Value";
//Trigger epplus to create a new style specific for the cell.
//This needs to be done even thought it will be overridden in
//order to ref by index. But have to be careful not to step
//on other styles so make it as unique as it needs to be.
cell.Style.TextRotation = 180;
//Make sure the update the xml before looking up by index
workbook.Styles.UpdateXml();
workbook.Styles.CellXfs[cell.StyleID].TextRotation = 255;
pck.Save();
}
}
因此:
我被这个和堆叠的文本吸引住了,就像你在Excel中想要的那样,然后使用ePlus在C#中打开了那个文件。堆叠文本的单元格将垂直对齐设置为底部,将旋转设置为255。当我试图通过编程将
TextRotation
值设置为255时,我得到了“ArgumentOutOfRangeException”(可以在第181行中看到)。因此,请尝试联系EPPlus开发者。:@Nino谢谢,我会这样做的。此外,我从未想过手动创建excel文件并使用EPPlus读取它,因此,感谢您的帮助,当我尝试创建具有大量格式的excel时,这将使我的生活更加轻松;如果没有答案,那么至少要加上一句评论:)干得好。我原以为这可能行得通,但我肯定会错过像workbook.Styles.UpdateXml()这样的东西代码>。太好了,谢谢。我试图用更新后的代码重建dll,但没有成功,这确实节省了我重建项目的大量时间。