Comment spécifier le format pour les cellules individuelles avec Excel.Gamme.set_Value()

Quand j'écris un tableau dans une feuille de calcul excel, je sais travailler avec toute une Gamme à la fois au lieu d'écrire des cellules individuelles. Cependant, est-il un moyen de spécifier le format que je suis le remplissage de la matrice, je vais exporter vers Excel?

Voici ce que je fais maintenant:

object MissingValue = System.Reflection.Missing.Value;
Excel.Application excel = new Excel.Application();
int rows = 5;
int cols = 5;
int someVal;

Excel.Worksheet sheet = (Excel.Worksheet)excel.Workbooks.Add(MissingValue).Sheets[1];
Excel.Range range = sheet.Range("A1", sheet.Cells(rows,cols));
object[,] rangeData = new object[rows,cols];
for(int r = 0; r < rows; r++)
{
    for(int c = 0; c < cols; c++)
    {
        someVal = r + c;
        rangeData[r,c] = someVal.ToString();
    }
}
range.set_Value(MissingValue, rangeData);

Maintenant, supposons que je veux que certains de ces chiffres sous la forme de pourcentages. Je sais que je peux revenir sur une cellule par cellule de base et modifier la mise en forme, mais qui semble à l'encontre de l'objectif à l'aide d'une seule Plage.set_Value (). Puis-je faire mon rangeData[,] la structure comprennent des informations de mise en forme, de sorte que quand je l'appelle set_Value(), les cellules sont mises en forme de la façon dont je veux?

Pour clarifier, je sais que je peux définir le format de l'ensemble de l'Excel.Objet de la plage. Ce que je veux, c'est avoir un autre format spécifié pour chaque cellule, spécifié dans la boucle interne.

OriginalL'auteur Drew Shafer | 2010-02-22