bylkus
Messages postés8Date d'inscriptionvendredi 8 juin 2012StatutMembreDernière intervention21 juin 2012
-
8 juin 2012 à 10:34
bylkus
Messages postés8Date d'inscriptionvendredi 8 juin 2012StatutMembreDernière intervention21 juin 2012
-
11 juin 2012 à 11:11
Bonjour,
Je suis actuellement en stage et on m'a demander de crée un programme qui pourrait exporter des donnée d'un fichier XLS vers Google Calendar.
Hors si je n'ouvre pas le fichier XLS rien ne s'exporte et donc une ERREUR "Object reference not set to an instance of an object."
Je voudrais savoir si il y'a une solution pour régler mon problème, voici mon code pour extraire du Fichier XLS.
Ce code marche si le fichier XLS est Ouvert
//**********************************************************//
//**************************
Programme principal
//***************************
List<DataTable> ls = Extract_excel.GetfichierFeuilleFichierExcel(txt_chemin.Text);
DataTable dt = ls[0];
if (dt.Rows.Count > 0)
{
for (int i = 1; i < dt.Rows.Count; i++)
{
DataRow row = dt.Rows[i];
string Evenement row[0] as string, Lieu row[8] as string, Description = row[9] as string;
object Year row[1], Month row[2], Day = row[3], HeureD = row[4], MinuteD = row[5], HeureF = row[6], MinuteF = row[7];
try
{
// Connection String. Change the excel file to the file you
// will search.
String connString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + excelFile + ";Extended Properties=Excel 8.0;";
// Create connection object by using the preceding connection string.
objConn = new OleDbConnection(connString);
// Open connection with the database.
objConn.Open();
// Get the data table containg the schema guid.
dt = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
if (dt == null)
{
return null;
}
String[] excelSheets = new String[dt.Rows.Count];
int i = 0;
// Add the sheet name to the string array.
foreach (DataRow row in dt.Rows)
{
excelSheets[i] = row["TABLE_NAME"].ToString();
i++;
}
// Loop through all of the sheets if you want too...
for (int j = 0; j < excelSheets.Length; j++)
{
// Query each excel sheet.
}
Whismeril
Messages postés19026Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention20 avril 2024656 9 juin 2012 à 17:46
Bonjour,
avant de te proposer une piste, je te cite la signature de NHenry, regarde bien la partie concernant le code:
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
J'ajouterai, que même avec les balises, ton code est difficilement lisible car sans indentation.
Pour te donner un exemple:
//**********************************************************//
//**************************
//Programme principal
//***************************
List<DataTable> ls = Extract_excel.GetfichierFeuilleFichierExcel(txt_chemin.Text);
DataTable dt = ls[0];
if (dt.Rows.Count > 0)
{
for (int i = 1; i < dt.Rows.Count; i++)
{
DataRow row = dt.Rows[i];
string Evenement row[0] as string, Lieu row[8] as string, Description = row[9] as string;
object Year row[1], Month row[2], Day = row[3], HeureD = row[4], MinuteD = row[5], HeureF = row[6], MinuteF = row[7];
}
}
C'est un peu plus facile à lire non?
Perso je n'ai jamais utilisé de liaison oledb vers excel, par contre j'ai développé cette classe pour y accéder via interop. Ça peut être une autre façon de faire pour toi.
bylkus
Messages postés8Date d'inscriptionvendredi 8 juin 2012StatutMembreDernière intervention21 juin 2012 11 juin 2012 à 11:11
ok merci très bien je vais essayer.
L'indentation à vrai dire est faite hors quand je l'ai coller sur le site cela l'a enlever.
Je veillerais a respecter la signature lors de mes prochain post.