使用带有C#的OpenXML将文本对齐到Excel文档中心

bro*_*man 6 c# excel openxml export-to-excel

我有一个我的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;
    }
Run Code Online (Sandbox Code Playgroud)

我对另一种方式开放,但我认为解决方案必须非常简单,我似乎无法得到它.如果有人能提供帮助,那就太棒了.

注意:请记住我使用的是OpenXML,不会使用Microsoft.Office.Interop.Excel

Kil*_*ine 7

我认为问题是你正在尝试设置列的样式,当它是需要格式化为使用特定水平对齐的单个单元格时.

我环顾四周,发现了以下MSDN文档:

http://msdn.microsoft.com/en-us/library/documentformat.openxml.spreadsheet.cellformat_properties.aspx

http://msdn.microsoft.com/en-us/library/documentformat.openxml.spreadsheet.alignment.aspx

我在这里也找到了一个代码示例(虽然我自己没有测试过):

http://blogs.msdn.com/b/chrisquon/archive/2009/11/30/stylizing-your-excel-worksheets-with-open-xml-2-0.aspx

我自己大部分时间都使用Interop,并且知道在编写电子表格时我设置了单元格,而不是列或行.

您应该能够创建单个样式,并在创建单元格时将其多次应用于单元格.