我尝试做以下事情:在Excel文档中创建10张纸,然后为每张纸生成100x100随机数,最后分别对每张纸中的数据执行一些操作(计算100x100矩阵的总和) ,例如)。
我从互联网上找到了一些代码如下:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="http://code.highcharts.com/highcharts.js"></script>
<script src="http://code.highcharts.com/modules/heatmap.js"></script>
<script src="http://code.highcharts.com/modules/treemap.js"></script>
<div id="container"></div><br/><br/>
我试着写:
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;
}
}
...
}
虽然它确实为我创建了3张纸,但当我点击按钮时,它只会为第一张纸生成数据。似乎该代码仅适用于Sheet1。
我的问题的正确实施是什么?
答案 0 :(得分:0)
似乎代码仅适用于Sheet1。
该代码仅适用于活动工作表。要使其适用于所有工作表,您需要为每个工作表添加一个循环。您可以使用Worksheets属性。对于Application对象,返回表示活动工作簿中所有工作表的Sheets集合。对于Workbook对象,返回表示指定工作簿中所有工作表的Sheets集合。