OpenXML 选择特定列

本文关键字:选择 OpenXML | 更新日期: 2023-09-27 18:31:29

我正在尝试选择一个特定的列,以便我可以自动设置它的宽度,但收效甚微。我是否应该不能使用 MSDN 版本的 GetRow 从列集合中选择列?

return worksheet.GetFirstChild<SheetData>().Elements<Row>().Where(r => r.RowIndex == rowIndex).First();
return worksheet.GetFirstChild<SheetData>().Elements<Column>().Where(r => r.Min== columnNumber && r.Max == columnNumber).First();

我采取了正确的方法吗?FWIW 我知道如何从头开始创建列并设置宽度,但这不可行,因为当我在构造函数中创建列时,我不知道列内会有什么数据。

OpenXML 选择特定列

您可以将列 Object 追加到工作表。然后我做了一个设置宽度的方法。

Worksheet ws = new Worksheet();
Columns columns = new Columns();
columns.Append(CreateColumnData(1, 1, 14.87));
ws.append(columns);

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;
        return column;
    }

我遇到了同样的问题,需要为不同的列设置宽度,但无法在网上找到解决方案。到目前为止提供的答案只是显示如何创建具有指定宽度的列,而不是如何动态更新指定列的宽度。可能是我对.net的openxml库不太熟悉,但是DocumentFormat.OpenXML接缝没有很好地记录,也没有Office.Interop那样直观。由于我的应用程序作为 azure 服务运行,我没有机会使用 Office.Interop。对我来说,解决方案是使用封闭的xml库,它简化了openxml文档的工作,就像在Office.Interop中一样。你可以谷歌一下。

他没有写那个方法。该方法来自一篇完整的文章,该文章能够根据单元格值的长度设置列的宽度:http://polymathprogrammer.com/2010/01/11/custom-column-widths-in-excel-open-xml/

希望这有帮助! ;)