web-dev-qa-db-fra.com

Définissez le type de données comme le nombre, le texte et la date dans la colonne Excel à l'aide de Microsoft.Office.Interop.Excel en c #

Mon problème est que j'essaie de définir le type de données sur une colonne Excel en C #, dans ce cas, le nombre, le texte et la date des types de données. J'utilise le DLL Microsoft.Office.Interop.Excel. Je ne sais pas comment définir ces formats pour les cellules d'une colonne Excel entière en utilisant C # a un langage de programmation.

12
Jack1987

Pour définir une plage de texte:

xlYourRange.NumberFormat = "@";

Vous pouvez également préfixer une valeur que vous mettez dans une cellule avec une apostrophe pour la mettre en forme sous forme de texte:

xlYourRange.Value = "'0123456";

Pour définir une plage sur un nombre

xlYourRange.NumberFormat = "0";

Évidemment, si vous souhaitez définir le format de la colonne entière, votre plage sera la colonne.

xlYourRange = xlWorksheet.get_Range("A1").EntireColumn;

MODIFIER:

Les dates sont un peu plus compliquées et dépendent également de vos paramètres régionaux:

// Results in a Date field of "23/5/2011"

xlRange.NumberFormat = "DD/MM/YYYY";
xlRange.Value = "23/5/2011";

// Results in a Custom field of "23/5/2011"

xlRange.NumberFormat = "DD-MM-YYYY";
xlRange.Value = "23/5/2011";

// Results in a Custom field of "05/23/2011"

xlRange.NumberFormat = "MM/DD/YYYY";
xlRange.Value = "5/23/2011";

// Results in a Custom field of "05-23-2011"

xlRange.NumberFormat = "MM-DD-YYYY";
xlRange.Value = "5/23/2011";

// Results in a Date field of "23/05/2011"

xlRange.NumberFormat = "DD/MM/YYYY";
xlRange.Value = "5/23/2011";

// Results in a Custom field of "23-05-2011"

xlRange.NumberFormat = "DD-MM-YYYY";
xlRange.Value = "5/23/2011";

// Results in a Custom field of "23/5/2011"

xlRange.NumberFormat = "MM/DD/YYYY";
xlRange.Value = "23/5/2011";

// Results in a Custom field of "23/5/2011"

xlRange.NumberFormat = "MM-DD-YYYY";
xlRange.Value = "23/5/2011";
25
Sid Holland

Oui, avec le format de date, tout est plus compliqué - encore plus compliqué que Sid Holland l'a mentionné. La raison en est certains problèmes de localisation. Par exemple, si votre système Windows a une localisation russe, vous devez utiliser des lettres russes dans les formats de date, comme "ДД.MM.ГГГГ" ou "ГГГГ-MM-ДД", et, par conséquent, vous devriez pouvoir extraire et appliquer Ces lettres. Voir la description et la solution plus ou moins complètes ici: https://stackoverflow.com/a/35418176/2199512

0
Jordan

Il y a une réponse à une question que j'ai posée il y a quelque temps.

Plus particulièrement, les types de données que ce type utilise dans sa réponse sont:

private struct ExcelDataTypes
{
    public const string NUMBER = "NUMBER";
    public const string DATETIME = "DATETIME";
    public const string TEXT = "TEXT"; // also works with "STRING".
}

Semble familier?

Si vous êtes intéressé, voici le lien:

Insérer DataTable dans Excel à l'aide du moteur de base de données Microsoft Access via OleDb

0
jp2code