创建新工作表并为每个工作表生成一些随机数据

本文关键字:工作 数据 随机 新工作 创建 | 更新日期: 2023-09-27 18:03:15

我正在尝试做以下事情:在Excel文档中创建10个工作表,然后为每个工作表生成100x100个随机数,最后分别对每个工作表中的数据做一些事情(例如计算100x100矩阵的总和)。

我从网上找到一些代码如下:

public partial class Sheet1
{
    Button randData = new Button();
    Button draw = new Button();
    Microsoft.Office.Tools.Excel.Chart sumfigure = null;
    private void Sheet1_Startup(object sender, System.EventArgs e)
    {
        randData.Text = "RandomData";
        randData.Click += new EventHandler(randData_Click);
        Globals.ThisWorkbook.ActionsPane.Controls.Add(randData);
        draw.Text = "DrawFigure";
        draw.Click += new EventHandler(draw_Click);
        Globals.ThisWorkbook.ActionsPane.Controls.Add(draw);
    }
    private void randData_Click(object sender, EventArgs e)
    {
        bool oldScreenUpdatingSetting = this.Application.ScreenUpdating;
        try
        {
            this.Application.ScreenUpdating = false;
            Random r = new Random();
            for (int i = 1; i < 101; ++i)
            {
                string address = String.Format("A{0}:CV{0}", i);
                Excel.Range ranges = Range[address, missing];
                for (int j = 1; j < 101; ++j)
                {
                    Excel.Range range = ranges.get_Item(j, missing) as Excel.Range;
                    range.Value2 = r.Next(10);
                }
            }
        }
        finally
        {
            this.Application.ScreenUpdating = oldScreenUpdatingSetting;
        }
    }
    ...
}

我试着写:

public partial class ThisWorkbook
{
    //Sheet1[] sheets;
    private void ThisWorkbook_Startup(object sender, System.EventArgs e)
    {
        for (int i = 1; i <= 3; i++) create 3 first
        {
            Sheets.Add();
        }
    }
}

虽然它确实为我创建了3个表,但当我单击按钮时,它只生成第一个表的数据。似乎代码只适用于Sheet1。

我的问题的正确实现是什么?

创建新工作表并为每个工作表生成一些随机数据

似乎代码只适用于Sheet1。

该代码仅适用于活动工作表。要使它适用于所有表单,您需要为每个表单添加一个循环。可以使用"工作表"属性。对于"应用程序"对象,返回表示活动工作簿中所有工作表的"工作表"集合。对于工作簿对象,返回表示指定工作簿中的所有工作表的工作表集合。