2

Excellibrary を使用していて、行の高さまたは列の幅を設定したいと考えています。非常に単純に聞こえますが、解決策が見つかりません。どうやってやるの?

4

1 に答える 1

2

私はあなたがexcellibraryを参照していると思いますか?現時点では目の前にロードしていませんが、メモリが役立つ場合は、次を試してください。

Workbook workbook = new Workbook();
Worksheet worksheet = new Worksheet("First Sheet");

worksheet.Cells[0, 0] = new Cell("Cell 0,0");
worksheet.Cells[1, 0] = new Cell("Cell 1,0");

ushort currentHeight = worksheet.Cells.GetRowHeight(1); 
worksheet.Cells.GetRow(1).Height = (ushort)(currentHeight + 20);

workbook.Worksheets.Add(worksheet);
workbook.Save(filePath); // will need to set filepath

編集:理論的にはこれは正しいですが、実際にはこのプロパティが機能するかどうかはわかりません(Excel 2010 と Excel 2007 で簡単にテストした後)。

ソース コードをたどると、どうやらRowクラスHeight プロパティpublic フィールドがWorksheetEncoder55 行目で書き出され、次にROWクラスEncodeメソッドを介してStreamワークブックが書き出されますが、Excel で開くと機能しません。(2007 年より前のバージョンの Excel をテスト用に持っていません)。

残念ながら、行の高さを設定するために使用する他のプロパティはありません。これはBinaryWriter、ワークブックを生成するために使用されるものです。

また、Excel 2010 をターゲットにしている場合は、上記のサンプルのセルのチャンクをパディングして、最終的なファイルが Excel 2010 が満足するのに十分な大きさであることを確認する必要があります。例えば:

Workbook workbook = new Workbook(); 
Worksheet worksheet = new Worksheet("First Sheet"); 

//  Excel 2010 hack - issue 102
for (int r = 0; r < 150; r++) {
    for (int c = 0; c < 10; c++) {
        worksheet.Cells[r, c] = new Cell(" ");
    }
}
于 2013-05-12T15:29:41.343 に答える