忍者ブログ
  • 2025.06
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 2025.08
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

【2025/07/21 02:25 】 |
Excel

private void button1_Click(object sender, EventArgs e)
        {
            //1データごとの行数
            int RowCount = 7;
            int ColCount = 5;


            int StartCol1 = 2;
            int StartCol2 = ColCount + StartCol1;
            int StartCol3 = ColCount + StartCol2;

            Excel.Application oXls = new Excel.Application(); // Excelオブジェクト

            string excelName = "C:\\Users\\x300\\sample.xls";

            Excel.Workbook oWBook; // workbookオブジェクト
            oXls.Visible = true;
            // Excelファイルをオープンする
            oWBook = (Excel.Workbook)(oXls.Workbooks.Open(
              excelName,  // オープンするExcelファイル名
              Type.Missing, // (省略可能)UpdateLinks (0 / 1 / 2 / 3)
              Type.Missing, // (省略可能)ReadOnly (True / False )
              Type.Missing, // (省略可能)Format
                // 1:タブ / 2:カンマ (,) / 3:スペース / 4:セミコロン (;)
                // 5:なし / 6:引数 Delimiterで指定された文字
              Type.Missing, // (省略可能)Password
              Type.Missing, // (省略可能)WriteResPassword
              Type.Missing, // (省略可能)IgnoreReadOnlyRecommended
              Type.Missing, // (省略可能)Origin
              Type.Missing, // (省略可能)Delimiter
              Type.Missing, // (省略可能)Editable
              Type.Missing, // (省略可能)Notify
              Type.Missing, // (省略可能)Converter
              Type.Missing, // (省略可能)AddToMru
              Type.Missing, // (省略可能)Local
              Type.Missing  // (省略可能)CorruptLoad
            ));

            // 与えられたワークシート名から、Worksheetオブジェクトを得る
            string sheetName = "Sheet1";
            Excel.Worksheet oSheet; // Worksheetオブジェクト
            oSheet = (Excel.Worksheet)oWBook.Sheets[
              getSheetIndex(sheetName, oWBook.Sheets)];

            //データ取り出し(コピー)
            for (int i = 0; i < 100; i++)
            {
                //何行目
                int DataRowNum = (int)(i / 3);
                //何列目
                int DataColNum = (int)(i % 3);
               
                Excel.Range range1;
                Excel.Range range2;

                //コピー元
                range1 = (Excel.Range)oSheet.Cells[1, StartCol1];
                range2 = (Excel.Range)oSheet.Cells[1 + RowCount - 1, StartCol1 + ColCount - 1];
                range1 = oSheet.get_Range(range1, range2);
                range1.Copy(Type.Missing);

                int rowstart = 0;
                int colstart = 0;
                int rowend = 0;
                int colend = 0;

                //コピー先検索
                switch (DataColNum)
                {
                    case 0:
                        rowstart = DataRowNum * RowCount + 1;
                        colstart = StartCol1;
                        rowend = DataRowNum * RowCount + RowCount;
                        colend = StartCol1 + ColCount - 1;
                        break;
                    case 1:
                        rowstart = DataRowNum * RowCount + 1;
                        colstart = StartCol2;
                        rowend = DataRowNum * RowCount + RowCount;
                        colend = StartCol2 + ColCount - 1;
                        break;
                    case 2:
                        rowstart = DataRowNum * RowCount + 1;
                        colstart = StartCol3;
                        rowend = DataRowNum * RowCount + RowCount;
                        colend = StartCol3 + ColCount - 1;
                        break;
                    default:
                        break;
                }

                range1 = (Excel.Range)oSheet.Cells[rowstart, colstart];
                range2 = (Excel.Range)oSheet.Cells[rowend, colend];
                //ペースト
                range1 = oSheet.get_Range(range1, range2);
                range1.PasteSpecial(Excel.XlPasteType.xlPasteAll, Excel.XlPasteSpecialOperation.xlPasteSpecialOperationNone, false, false);
               
                //値を入れていく
                int c1 = 0;
                int r1 = 0;
                //名前
                ((Excel.Range)oSheet.Cells[rowstart + r1, colstart + c1]).Value2 = "なまえ";
                //年齢
                c1 = 3;
                r1 = 1;
                ((Excel.Range)oSheet.Cells[rowstart + r1, colstart + c1]).Value2 = rowstart + r1;
            }

            //oWBook.Close(Type.Missing, Type.Missing, Type.Missing);
            //oXls.Quit();

        }

 

        // 指定されたワークシート名のインデックスを返すメソッド
        private int getSheetIndex(string sheetName, Excel.Sheets shs)
        {
            int i = 0;
            foreach (Excel.Worksheet sh in shs)
            {
                if (sheetName == sh.Name)
                {
                    return i + 1;
                }
                i += 1;
            }
            return 0;
        }
 

PR
【2011/05/31 21:43 】 | 未選択 | 有り難いご意見(0) | トラックバック()
<<Excelんど | ホーム | 効果があるダイエットサプリ~その5~>>
有り難いご意見
貴重なご意見の投稿














虎カムバック
トラックバックURL

<<前ページ | ホーム | 次ページ>>