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 我知道如何从头开始创建列并设置宽度,但这是不可行的,因为当我在构造函数中创建列时,我不知道列中将包含哪些数据。

4

3 回答 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;
    }
于 2012-04-16T21:17:24.970 回答
0

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

于 2015-06-01T18:12:08.707 回答
-1

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

希望这可以帮助!;)

于 2012-11-14T13:49:16.117 回答