Sunday, December 6, 2009

VSTO Excel From Range to Array Array to Range


using System;
using Excel = Microsoft.Office.Interop.Excel;

namespace ExcelArray
{
public partial class ThisAddIn
{
Excel.Worksheet ws;
Excel.Range c;
Object[,] arValue;

private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
ws = (Excel.Worksheet)Globals.ThisAddIn.Application.ActiveWorkbook.ActiveSheet;

for (int j = 1; j < 11; j++)
{
for (int i = 1; i < 11; i++)
{
c = (Excel.Range)ws.Cells[i, j];
c.Value2 = i+j-1;
}
}

// From Range to Array
// We copy the 2nth column
c = (Excel.Range)ws.get_Range(ws.Cells[1, 2], ws.Cells[10, 2]);
c.Interior.ColorIndex = 2;
arValue = (Object[,])c.Value2;

// Array to Range
// We paste on the first column
c = (Excel.Range)ws.get_Range(ws.Cells[12, 1], ws.Cells[21, 1]);
c.Value2 = arValue;
c.Interior.ColorIndex = 6;
}

private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
{
}

#region VSTO generated code

///
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
///

private void InternalStartup()
{
this.Startup += new System.EventHandler(ThisAddIn_Startup);
this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown);
}

#endregion
}
}

No comments:

Post a Comment