5

いくつかの写真(ファイルからの写真を埋め込む)を含むスプレッドシートを作成したいと思っており、EPPlus(すばらしいライブラリのように見えます)を見始めました。

ただし、画像はセルに関連付けられていないようです。x、y座標に関連付けられているようです。

EPPlusまたは他の方法でセルを画像に設定する(そしてセルのサイズを操作する)方法はありますか?

SetPosition

4

4 に答える 4

4

私の誤解...

これが私が周りを見回したときに見つけたコメントです:

どのバージョンのExcelでも、セルに画像を挿入することはできません。写真はワークシートに挿入され、常に浮きます。画像のプロパティの1つを「セルで移動およびサイズ変更」に設定できますが、これは、下にある行と列が挿入、削除、またはサイズ変更された場合にのみ画像を移動または拡大します。画像をセルに限定するものではありません。

したがって、プロパティを適切に設定する必要があるかもしれません。

プログラムでこれを行うことができれば、私はすべて準備ができています

編集

次のコードは、私が望む/必要なことをほぼ実行します。

写真を挿入する前に、オーバーレイするセルの幅と高さを適切なサイズに設定したことに注意してください。

private static void AddImage(ExcelWorksheet ws, int rowIndex, String imageFile)
{
    ExcelPicture picture = null;
    Bitmap image = new Bitmap(imageFile);

    if (image != null)
    {
        picture = ws.Drawings.AddPicture("pic" + rowIndex.ToString(), image);                
        picture.From.Column = 0;
        picture.From.Row = rowIndex-1;
        picture.SetSize(320, 240);
    }
}
于 2011-09-19T19:01:43.963 に答える
2

画像を挿入してから調整し、適切なセルの.Top.Leftに揃えることができます。写真と同じ単位を使用してセルの行を設定できます(最大の高さはありますが)。列のは幅のテキスト文字の単位であるため、私が行うことは次のようになります。.Top.Left.RowHeight.height.ColumnWidth

myColumn.ColumnWidth = myColumn.ColumnWidth / myColumn.Width * myPicture.Width

初めて設定したとき.ColumnWidthに正確に設定されないことがあるので、2回実行します。

于 2011-09-20T01:19:09.087 に答える
1

Excel自体ではそれができないと思います。Excelワークシートに画像を追加すると、それはフローティングオブジェクトであり、特定のセルに固定されません。

于 2011-09-19T18:50:48.893 に答える
0

ドキュメントに記載されているように、 valueの設定でEPPLUS可能になるはずです。EditAsTwoCell

picture.EditAs = eEditAs.TwoCell;

「現在の図面を移動およびサイズ変更して、行と列のアンカーを維持することを指定します(つまり、オブジェクトは実際の行と列にアンカーされます)。」

于 2017-07-21T06:04:25.207 に答える