C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: C#でPNG画像をExcelのセルに挿入する方法


(過去ログ 122 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■73110 / inTopicNo.1)  C#でPNG画像をExcelのセルに挿入する方法
  
□投稿者/ のぼう (1回)-(2014/08/20(Wed) 03:07:54)

分類:[C#] 

現在、複数のPNGファイルをExcelファイル(xls)のセルに貼り付ける方法を探しています。
具体的には、下記の様な複数のPNGファイルがあり、
ファイル名の先頭が1ならばセル[1,D]に挿入、
ファイル名の先頭が2ならばセル[2,D]に挿入、
以下同じようにするといったようにしたいです。

-------------
pngファイル
-------------
1_Test.png
2_Test2.png
3_Result.png


-------------

----------------
コード
----------------
Excel.Application exApp = new Excel.Application();

Excel.Workbook wkbook;

Excel.Workbooks wkbooks = exApp.Workbooks;



exApp.Visible = true;

exApp.DisplayAlerts = false;



wkbook = (Excel.Workbook)wkbooks.Open(@"C:\Users\user\Documents\test.xls", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);


Excel.Sheets sheets = wkbook.Worksheets;

Excel.Worksheet wksheet = (Excel.Worksheet)sheets["test"];

Excel.Range cells = wksheet.Cells;

Excel.Range range = (Excel.Range)cells[1, 21];

range.Select();


Excel.Shapes shapes = wksheet.Shapes;
float fx = float.Parse(range.Left.ToString());

float fy = float.Parse(range.Top.ToString());

shapes.AddPicture(@"C:\Users\user\Documents\test.png", MsoTriState.msoFalse,MsoTriState.msoFalse,fx, fy, 100,100);



----------------

しかし、コードの最後の行でshapes.AddPicture()でエラーが出てしまいます。
どなたかわかる方がいれば教えて頂けないでしょうか。

また、1_Test1.pngの「1」だけを取り出して、Excel.Range range = (Excel.Range)cells[1, 21];とすることは可能でしょうか?

その他、おかしな箇所があれば指摘をお願いします。
引用返信 編集キー/
■73113 / inTopicNo.2)  Re[1]: C#でPNG画像をExcelのセルに挿入する方法
□投稿者/ Hongliang (225回)-(2014/08/20(Wed) 10:47:43)
> shapes.AddPicture(@"C:\Users\user\Documents\test.png", MsoTriState.msoFalse,MsoTriState.msoFalse,fx, fy, 100,100);

http://msdn.microsoft.com/ja-jp/library/office/ff198302.aspx
によると、LinkToFileをmsoFalseにする場合はSaveWithDocumentをmsoTrueにしないといけないそうですよ。

> また、1_Test1.pngの「1」だけを取り出して、Excel.Range range = (Excel.Range)cells[1, 21];とすることは可能でしょうか?
正規表現とか、String::IndexOf&String::Substringとかで数字部分を取り出してInt32.Parseとかすればいいんじゃないですかね。
引用返信 編集キー/
■73114 / inTopicNo.3)  Re[1]: C#でPNG画像をExcelのセルに挿入する方法
□投稿者/ 魔界の仮面弁士 (84回)-(2014/08/20(Wed) 11:16:20)
No73110 (のぼう さん) に返信
> しかし、コードの最後の行でshapes.AddPicture()でエラーが出てしまいます。

先月の No72855 と同じ問題のようですね。
http://bbs.wankuma.com/index.cgi?mode=al2&namber=72855


"test.png" というファイル名も、サイズが 100x100 指定な点も何故か一緒ですが、
どこかに元ネタがあるのかな…。
引用返信 編集キー/
■73141 / inTopicNo.4)  Re[2]: C#でPNG画像をExcelのセルに挿入する方法
□投稿者/ かめさん (1回)-(2014/08/21(Thu) 20:42:34)
No73114 (魔界の仮面弁士 さん) に返信

> 先月の No72855 と同じ問題のようですね。
> http://bbs.wankuma.com/index.cgi?mode=al2&namber=72855
>
>
> "test.png" というファイル名も、サイズが 100x100 指定な点も何故か一緒ですが、
> どこかに元ネタがあるのかな…。

たぶん、同一人物でしょう。

マルチな人(才能ではない)でもあるようです。
Yahoo!知恵袋
http://chiebukuro.yahoo.co.jp/my/myspace_quedetail.php?writer=limitebrush

質問内容や雰囲気が酷似。
http://bbs.wankuma.com/index.cgi?mode=al2&namber=73135
http://bbs.wankuma.com/index.cgi?mode=al2&namber=72950
http://bbs.wankuma.com/index.cgi?mode=al2&namber=72854
http://bbs.wankuma.com/index.cgi?mode=al2&namber=72893
http://bbs.wankuma.com/index.cgi?mode=al2&namber=72871
http://bbs.wankuma.com/index.cgi?mode=al2&namber=72855

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -