bylkus
Messages postés8Date d'inscriptionvendredi 8 juin 2012StatutMembreDernière intervention21 juin 2012
-
19 juin 2012 à 15:59
yannick2638
Messages postés5Date d'inscriptionsamedi 14 avril 2018StatutMembreDernière intervention 1 mars 2021
-
1 mars 2021 à 21:28
Bonjour,
Je suis actuellement en stage de fin de première année de BTS et on m'a demander de crée un programme qui pourrait exporter des donnée d'un fichier XLS vers Google Calendar. Voila je voudrais essayer de ne pas envoyer si je recommence en double des évènements. il faudrait pour cela lire ce qu'il y a dans google calendar et les comparer avec ceux de la feuille Excel.
Pouvez vous m'aider a finir mon code ?
voici mon code
//Code de connexion a Google calendar et envoie
CalendarService service = new CalendarService("");
service.setUserCredentials(user, password);
EventEntry entry = new EventEntry();
// Set the title and content of the entry.
entry.Title.Text = Even;
entry.Content.Content = Descrip;
// Set a location for the event.
Where eventLocation = new Where();
eventLocation.ValueString = location;
entry.Locations.Add(eventLocation);
When eventTime = new When();
DateTime DateD = new DateTime(year, month, day, hourD, minuteD, 0);
DateTime DateF = new DateTime(year, month, day, hourF, minuteF, 0);
eventTime.StartTime = DateD;
eventTime.EndTime = DateF;
entry.Times.Add(eventTime);
Uri postUri = new Uri("https://www.google.com/calendar/feeds/" + user + "@gmail.com/private/full");
// Send the request and receive the response
AtomEntry insertedEntry = service.Insert(postUri, entry);
//code qui recupere les donnees
private void bt_Valide_Click(object sender, RoutedEventArgs e)
{
if ((txt_user.Text "") || (Password.Text ""))
{
MessageBox.Show("Veuillez entrez Le nom d'utilisateur et le Mot de passe");
}
else
{
if (txt_chemin.Text == "")
{
txt_information.Text = "Choisir un fichier";
}
else
{
progressBar.Value = 0;
List<DataTable> ls = Extract_excel.GetfichierFeuilleFichierExcel(txt_chemin.Text);
dt = ls[0];
if (dt.Rows.Count > 0)
{
Thread t = new Thread(new ThreadStart(ThreadFonction));
t.Start();
}
else
{
MessageBox.Show("Vous n'avez pas de ligne");
}
}
}
}
public void ThreadFonction()
{
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];
int Year1 Convert.ToInt32(Year), Month1 Convert.ToInt32(Month), Day1 = Convert.ToInt32(Day), HeureD1 = Convert.ToInt32(HeureD), MinuteD1 = Convert.ToInt32(MinuteD), HeureF1 = Convert.ToInt32(HeureF), MinuteF1 = Convert.ToInt32(MinuteF);
Dispatcher.BeginInvoke((Action)(() =>
{
Write(txt_user.Text, Password.Text, Evenement, Description, Lieu, Year1, Month1, Day1, HeureD1, MinuteD1, HeureF1, MinuteF1);
}));
}
MessageBox.Show("Evenement(s) Ajouté à votre agenda");
Dispatcher.BeginInvoke((Action)(() =>
{
txt_chemin.Text = " ";
}));
}
A voir également:
Comment exporter agenda google excel
Exporter agenda google vers excel - Meilleures réponses
Importer fichier excel dans google agenda - Meilleures réponses
Whismeril
Messages postés19146Date d'inscriptionmardi 11 mars 2003StatutNon membreDernière intervention12 septembre 2024660 21 juin 2012 à 07:29
Bonjour,
As tu essayer de mettre une colonne clé primaire dans ton tableau excel?
Il te suffirait quand tu lis un événement de regarder dans google calendar si la clé existe déjà.
une clé primaire est un champ (string, int, comme tu veux) contenant une valeur unique qui est affectée à un enregistrement.
Si tu supprimes cet enregistrement cette clé ne devra jamais être réutilisée.
Elle doit aussi être indépendante du "device" de saisie et du temps: si un utlisateur crée un rendez vous sur excel, un autre directement sur google calendar, et un troisième sur une appli smartphone, qu'ils valident tous les trois à la même milliseconde (infimement probable, mais bon) les 3 clées générées seront différentes.
Cette clé va maintenant te servir pour les synchronisations.
Si elle n'existe pas, on ajoute.
Si elle existe, que les données sont identiques, rien à faire.
Si elle existe, que les données sont différentes, tu dois choisir la politique que tu appliques:
-remplacement pur et simple (pas forcément le meilleur)
-choisir la mise à jour la plus récente (politique par défaut souvent utilisée)
-alerter l'utilisateur, afficher les deux enregistrements et le laisser choisir
En effet, dommage de ne pas avoir le fichier, car le probleme d import vers google agenda est justement qu il ne fait pas la différence avec les entrées déja existantes et n'ecrase pas les doublons mais les dupliques.
Si quelqu'un à une idée....
a+
Vous n’avez pas trouvé la réponse que vous recherchez ?