locked
MessageBoxが出力されない場合がある RRS feed

  • 質問

  • はじめまして

    Visual Studio 2012

    Silverlight5

    .Net Framework4.5

    C#

    でプログラムを作成しています

    XamGridに表示されているデータをExcelに出力するプログラムを作成しています。

    XamGridに表示されているデータが少ない場合は問題なく動作するのですが

    XamGridに7000ほどのデータが表示されている場合にメッセージボックスが表示されずにExcelファイルが作成されてしまいます。

    データ数が多い場合にもメッセージボックスが表示されるようにするためにはどうしたらいいでしょうか?

    for文内で10秒くらい処理を行うとメッセージボックスが表示されなくなります。

            private void Out_Excel_Data()
            {
                //最後尾の行
                int Last_Line = 2;
                // ワークブックの作成
                Workbook workbook1 = new Workbook();

                // ワークシートを追加
                Worksheet worksheet1 = workbook1.Worksheets.Add("一覧");

                WorksheetRow worksheetRow;
                WorksheetCell worksheetCell;
                //タイトル設定
                worksheet1.Rows[0].Cells[0].Value = "一覧";
                worksheet1.Rows[0].Cells[0].CellFormat.Font.Height = 16 * 20;

                //ラベル左右境界線の設定
                int[] cell_No = new int[] { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
                };
                //データをExcelに出力
                for (int jCnt = 0; jCnt < XamGrid.Rows.Count; jCnt++)
                {
                    worksheetRow = worksheet1.Rows[Last_Line];

                    worksheetRow.Cells[0].Value = XamGrid.Rows[jCnt].Cells[0].Value;
                    worksheetRow.Cells[1].Value = XamGrid.Rows[jCnt].Cells[1].Value;
                    worksheetRow.Cells[2].Value = XamGrid.Rows[jCnt].Cells[2].Value;
                    worksheetRow.Cells[3].Value = XamGrid.Rows[jCnt].Cells[3].Value;
                    worksheetRow.Cells[4].Value = XamGrid.Rows[jCnt].Cells[4].Value;
                    worksheetRow.Cells[5].Value = XamGrid.Rows[jCnt].Cells[5].Value;
                    worksheetRow.Cells[6].Value = XamGrid.Rows[jCnt].Cells[6].Value;
                    worksheetRow.Cells[7].Value = XamGrid.Rows[jCnt].Cells[7].Value;
                    worksheetRow.Cells[8].Value = XamGrid.Rows[jCnt].Cells[8].Value;
                    worksheetRow.Cells[9].Value = XamGrid.Rows[jCnt].Cells[9].Value;
                    worksheetRow.Cells[10].Value = XamGrid.Rows[jCnt].Cells[10].Value;

                    if ((bool)XamGrid.Rows[jCnt].Cells[11].Value == true)
                    {
                        worksheetRow.Cells[11].Value = "データ有";
                    }
                    else
                    {
                        worksheetRow.Cells[11].Value = "";
                    }

                    if ((bool)XamGrid.Rows[jCnt].Cells[12].Value == true)
                    {
                        worksheetRow.Cells[12].Value = "データ有";
                    }
                    else
                    {
                        worksheetRow.Cells[12].Value = "";
                    }

                    worksheetRow.Cells[13].Value = XamGrid.Rows[jCnt].Cells[13].Value;
                    worksheetRow.Cells[14].Value = XamGrid.Rows[jCnt].Cells[14].Value;
                    worksheetRow.Cells[15].Value = XamGrid.Rows[jCnt].Cells[15].Value;

                    //ラベル左右境界線の設定
                    for (int kCnt = 0; kCnt <= 15; kCnt++)
                    {
                        worksheetRow.Cells[kCnt].CellFormat.LeftBorderStyle = CellBorderLineStyle.Thin;
                    }
                    worksheetRow.Cells[15].CellFormat.RightBorderStyle = CellBorderLineStyle.Thin;

                    //ラベル上下境界線の設定
                    for (int kCnt = 0; kCnt <= 15; kCnt++)
                    {
                        worksheetCell = worksheetRow.Cells[kCnt];
                        worksheetCell.CellFormat.TopBorderStyle = CellBorderLineStyle.Thin;
                        worksheetCell.CellFormat.BottomBorderStyle = CellBorderLineStyle.Thin;
                    }

                    Last_Line += 1;
                }

            stream = savefileDialog.OpenFile();
                    workbook1.Save(stream);
                    stream.Close();

                    MessageBox.Show("ファイルを出力しました");
            }

    2014年6月11日 8:39