创建新工作表并为每个工作表生成一些随机数据
本文关键字:工作 数据 随机 新工作 创建 | 更新日期: 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。
该代码仅适用于活动工作表。要使它适用于所有表单,您需要为每个表单添加一个循环。可以使用"工作表"属性。对于"应用程序"对象,返回表示活动工作簿中所有工作表的"工作表"集合。对于工作簿对象,返回表示指定工作簿中的所有工作表的工作表集合。