Je rencontre un problème lors de l'utilisation de OLDEDB à partir de C# pour écrire des entrées dans un fichier Excel. Essentiellement, je veux utiliser un fichier de modèle Excel pour le formatage de certaines informations. L'idée est que les utilisateurs peuvent exécuter une requête, il va peupler les résultats dans un fichier Excel, où l'utilisateur peut ensuite continuer à utiliser Excel pour gérer les résultats. Pour cela, je crée un onglet "raw_data" et j'utilise OLEDB pour y écrire comme une table. Cependant, je suis confronté à un problème où les calculs prédéfinis. Certaines colonnes sont du texte, d'autres sont des nombres et les forums devraient faire référence à ces colonnes dès que la feuille est ouverte.L'utilisation du pilote OLEDB/Microsoft Jet provoque «Nombre stocké en tant que texte» dans le fichier Excel
Excel version 2003 C# /. Net 3.5
Voici mon chaîne de connexion
string connectString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={filename};Extended Properties=""Excel 8.0;HDR=YES;IMEX=0""";
{nom de fichier} get remplacé plus tard dans le code avec le chemin du fichier
DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.OleDb");
using (DbConnection connection = factory.CreateConnection())
{
connection.ConnectionString = connectString;
using (DbCommand command = connection.CreateCommand())
{
connection.Open();
query = "INSERT INTO [raw_prod$] (correlationid, created, ipaddr, nai, started, delta, csid, bytesin, bytesout, cause, bsid, servopt, svzone) VALUES (\"{correlationid}\", \"{created}\", \"{ipaddr}\", \"{nai}\", \"{started}\", {delta}, \"{csid}\", {bytesin}, {bytesout}, {cause}, \"{bsid}\", \"{servopt}\", \"{zone}\")";
//Replace {} code with actual values skipped
command.CommandText = query;
command.ExecuteNonQuery();
}
}
Lorsque cette série est remplie, les données sont remplies comme prévu, mais Excel traite les données sous forme de texte, donc des choses comme sum (c2: c100) ne fonctionnent pas. Si je sélectionne simplement une entrée et que j'appuie sur Entrée, cela deviendra automatiquement du texte. J'ai essayé de mettre en forme la colonne à numéroter dans le modèle, et comme vous pouvez le voir, je supprime les guillemets doubles dans le sql.
Comment puis-je obtenir Excel pour traiter ces entrées comme numériques tout de suite, de sorte que tous les calculs vont fonctionner?
Merci
Je l'ai déjà en sans les guillemets, c'est juste hors de l'écran: {bytesin}, –