OpenXML选择特定列

3

我正在尝试选择特定的列,以便可以自动设置其宽度,但是一直没有成功。我是否应该能够使用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,我知道如何从头开始创建列并设置宽度,但由于我不知道在构造函数中创建它们时将放入哪些数据,因此这种方法并不可行。
3个回答

1
您可以将列对象附加到工作表上。然后我创建了一个设置宽度的方法。
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;
    }

无论 Column 1 中输入了什么,宽度都将设置为14.87。 - broguyman
你说得完全正确...而且我以前已经能做到这一点了...我需要做的是根据列内部内容动态选择列宽。:( 这没有帮助。:( @broguyman - Kulingar

0

我曾经遇到过同样的问题,需要为不同的列设置宽度,但是在网上找不到解决方案。迄今为止提供的答案只是展示如何创建指定宽度的列,而不是如何动态更新指定列的宽度。也许我对 .net 的 openxml 库不太熟悉,但 DocumentFormat.OpenXml 看起来并没有像 Office.Interop 那样有很好的文档和直观性。由于我的应用程序作为 Azure 服务运行,我没有机会使用 Office.Interop。对我来说,解决方案是使用 closedxml 库,它简化了与 openxml 文档的工作,就像在 Office.Interop 中一样。你可以在谷歌上搜索它。


-1

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