@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

続Excelが終了できない

1
投稿者投稿内容
ひろひろ
会議室デビュー日: 2003/03/13
投稿数: 2
投稿日時: 2003-03-13 14:35
初めまして、いつも参考にさせてもらっています。
それでここの記事の
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=3343&forum=7
を参考にやってみたのですが・・・
エクセルにデータを入れるのが、少ないとちゃんと終了はしてくれるのですが
増えてくると、残ったままになってしまうのです。
なにが原因なんでしょうか・・・
すみませんが、教えてください。
以下ソースです。

Excel.Application xlsApp;
Excel._Workbook xlsBook;
Excel._Worksheet xlsSheet;
object optional = System.Reflection.Missing.Value;
GC.Collect();
xlsApp = new Excel.Application();
xlsApp.DisplayAlerts = false;
xlsBook = (Excel._Workbook)(xlsApp.Workbooks.Add(Server.MapPath("") + "\\A.xls"));
xlsSheet = (Excel._Worksheet)xlsBook.ActiveSheet;

for (int i = 0; i < iKoutei; i++)
{
xlsSheet.Cells[i*3+14,5] = A[i];
xlsSheet.Cells[i*3+14,9] = B[i];
       ・
       ・
ここを増やしていくと、残ってしまう・・・
}

xlsBook.SaveAs(Server.MapPath("") + "\\AA.xls",Excel.XlFileFormat.xlWorkbookNormal,null,null,false,false,Excel.XlSaveAsAccessMode.xlShared,false,false,null,null);

xlsBook.Close(null,null,null);
xlsApp.Workbooks.Close();
xlsApp.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject (xlsApp);
System.Runtime.InteropServices.Marshal.ReleaseComObject (xlsSheet);
System.Runtime.InteropServices.Marshal.ReleaseComObject (xlsBook);
xlsSheet=null;
xlsBook=null;
xlsApp = null;
GC.Collect();

Response.Clear();
Response.ContentEncoding = System.Text.Encoding.GetEncoding("shift-jis");
Response.ContentType = "application/vnd.ms-excel";
Response.AppendHeader("content-disposition","attachment; filename=BunshoA.xls");
Response.WriteFile(xlsFileName);
Response.End();
ken
会議室デビュー日: 2004/01/09
投稿数: 1
投稿日時: 2004-01-09 21:38
初めまして。

> エクセルにデータを入れるのが、少ないとちゃんと終了はしてくれるのですが
> 増えてくると、残ったままになってしまうのです。

私もまったく同じ事象が発生してしまい非常に悩みましたが、
やっと解決しましたので報告します。

その解決法は、
dcomcnfg.exe のExcelのセキュリティ設定において
locahost\ASPNET ユーザの権限を"フルコントロール"にするというものでした。
(それまでは権限を"読み取り"に設定していました。)

#とりあえず同じ事象は発生しなくなったので安心しているんですが、
 なぜこれで解決できたのか全くわかりません...

1

スキルアップ/キャリアアップ(JOB@IT)