Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用EPPlus显示具有垂直文本的单元格_C#_.net_Excel_Epplus - Fatal编程技术网

C# 使用EPPlus显示具有垂直文本的单元格

C# 使用EPPlus显示具有垂直文本的单元格,c#,.net,excel,epplus,C#,.net,Excel,Epplus,使用EPPlus,如何将单元格文本更改为垂直文本显示,如下所示 在excel中,您可以通过在设置单元格方向时单击此按钮来执行此操作 我正在尝试使用.TextRotation但这并没有达到我想要的效果,将其设置为180度会得到类似的结果 ws.Cells[row,2].Style.TextRotation=180,.TextRotation只接受一个整数值,所以我想知道如何获得“Text”按钮值,这肯定是您发现的错误。有一种方法,但它是相当丑陋的。当您将单元格创建的StyleID更改为默认值

使用EPPlus,如何将单元格文本更改为垂直文本显示,如下所示

在excel中,您可以通过在设置单元格方向时单击此按钮来执行此操作

我正在尝试使用
.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,但没有成功,这确实节省了我重建项目的大量时间。