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

さまざまな列の幅を設定する必要がある同じ問題がありましたが、Web 上で解決策を見つけることができませんでした。これまでに提供された回答は、指定された幅で列を作成する方法を示しているだけで、指定された列の幅を動的に更新する方法は示していません。私は .net の openxml ライブラリにあまり詳しくないかもしれませんが、DocumentFormat.OpenXml はよく文書化されておらず、Office.Interop のように直感的ではありません。アプリケーションが Azure サービスとして実行されていたため、Office.Interop を使用する機会がありませんでした。私にとっての解決策は、Office.Interopのようにopenxmlドキュメントの操作を簡素化するclosedxmlライブラリを使用することでした。あなたはそれをグーグルすることができます。

于 2015-06-01T18:12:08.707 に答える
-1

彼はそのメソッドを書きませんでした。メソッドは、セル値の長さに基づいて列の幅を設定できる完全な記事から来ています: http://polymathprogrammer.com/2010/01/11/custom-column-widths-in-エクセルオープンxml/

お役に立てれば!;)

于 2012-11-14T13:49:16.117 に答える