login  Naam:   Wachtwoord: 
Registreer je!
 Forum
Zoeken  Regels  Help
Categorieën > Csharp.NET

C# programma slaat cel waarde niet op (Opgelost)

lolll – 01/09/2011 20:04 (Laatst gewijzigd op 01/09/2011 20:10)
Om het mezelf in de toekomst wat gemakkelijker te maken, heb ik 3 klassen geschreven om waardes van een excel document op te vragen of - en daar zit de fout - om waardes in te vullen.
Ik heb een test-programma gemaakt om deze klassen te testen. Het opvragen gaat goed, maar als ik het aanpas wordt de waarde wel lokaal ingevuld (denk ik toch), maar als ik later de excel open zijn er geen wijzigingen aangebracht.
Omdat de code nogal verdeeld is heb ik het op plaatscode gezet:
Klassen: Plaatscode: 141265
TestProgramma: Plaatscode: 141266

Weet iemand wat er precies fout loopt, want volgens google moet je via Value2 of Value wel degelijk een waarde in een cel kunnen stoppen.

Lolll

EDIT:

Structuur van excel(testbestand.xlsx) vergeten:
//A//B//...
1.naam//email
2.eenNaam//eenEmail
......//.....


Pagina:

19 antwoorden

Gesponsorde links

lemoinet – 01/09/2011 21:15
je moet wel je excel-bestand opslaan voor je het afsluit.

lolll – 02/09/2011 20:24
Ok, ik heb nu een destructor toegevoegd die de worksheet opslaat en de applicatie sluit. Als ik het programma nu afsluit vraagt hij of ik het bestaande bestand wil vervangen, dan klik ik op ok. Maar als ik het excel-bestand bekijk is er niets gewijzigd. Wat doe ik nog fout?

Destructor:
  1. ~ExcelDocument()
  2. {
  3. ws.SaveAs(filename,
  4. Type.Missing,
  5. Type.Missing,
  6. Type.Missing,
  7. Type.Missing,
  8. Type.Missing,
  9. Type.Missing,
  10. Type.Missing,
  11. Type.Missing,
  12. Type.Missing);
  13. app.Quit();
  14. }


Lolll

larssy1 – 03/09/2011 10:52
lolll schreef:
Ok, ik heb nu een destructor toegevoegd die de worksheet opslaat en de applicatie sluit. Als ik het programma nu afsluit vraagt hij of ik het bestaande bestand wil vervangen, dan klik ik op ok. Maar als ik het excel-bestand bekijk is er niets gewijzigd. Wat doe ik nog fout?

Destructor:
[..code..]
Lolll

Weet niet zeker of het nodig is, maar misschien moet je handmatig schrijfrechten defineren voor je programma.

lolll – 03/09/2011 12:16
Hoe zou ik dat dan moeten doen?  Ietsje meer uitleg graag

larssy1 – 03/09/2011 14:12
lolll schreef:
Hoe zou ik dat dan moeten doen?  Ietsje meer uitleg graag

normaal gesproken zou het combineren je scripts in twee delen het moeten oplossen,
Het deel dat schrijf doe je in het bestand van je project Program.cs (console basis) (weet niet of deze hetzelfde is genoemd in elke programmeertaal, en de uitvoer en andere functies zet je gewoon in je eigen class.

programmeren van het 'write' gedeelte voor je programma zou automatisch in Program.cs moeten worden geregeld.

Daarnaast moet je na het schrijven niet het process killen, maar het bestand opslaan, en dan eventueel process stoppen naar de wensen.

lolll – 04/09/2011 16:43
@larssy1:
Citaat:
normaal gesproken zou het combineren je scripts in twee delen het moeten oplossen,
Het deel dat schrijf doe je in het bestand van je project Program.cs (console basis) (weet niet of deze hetzelfde is genoemd in elke programmeertaal, en de uitvoer en andere functies zet je gewoon in je eigen class.

programmeren van het 'write' gedeelte voor je programma zou automatisch in Program.cs moeten worden geregeld.

Maar ik heb speciaal een klasse gemaakt die ervoor zorgt dat ik gemakkelijk excel-bestanden kan lezen en schrijven. Dus waarom zou ik die code moeten opsplitsen als ik de functionaliteit ervan met 1 klasse ook kan bereiken?

Citaat:
Daarnaast moet je na het schrijven niet het process killen, maar het bestand opslaan, en dan eventueel process stoppen naar de wensen.


Ok, dan kan ik een functie save en een functie quit toevoegen, maar het probleem blijft hetzelfde: Het lukt mij niet om dat excel-bestand op te slaan.

Weet iemand wat ik fout doe?

larssy1 – 04/09/2011 21:31
Ok, snel een voorbeeld..

Als je een download applicatie maakt, bijv. een updater of Origin (EA Downloader).

Als je de gehele applicatie bouwt in een enkele class buiten de Program.cs zal het programma het bestand wel downloaden, maar vervolgens niet wegschrijven op de hardeschijf, dit omdat er geen rechten zijn toegekent en dit levert dus een foutmelding.

Dit is een enkele reden waarom het handiger is om het schrijf/download gedeelte te programmeren in Program.cs, doordat Program.cs op command niveau is heeft het dus ook schrijfrechten.

lolll – 05/09/2011 17:00
Ik begrijp wat je bedoelt, maar dan heeft het toch geen nut om een klasse te maken als ik die schrijfcode dan telkens in het programma zelf moet zetten.

larssy1 – 05/09/2011 20:19
je classes opsplitsen en de schrijf delen in program.cs zetten is mogelijk de enigste of 1 van de weinige opties die je hebt.

lolll – 05/09/2011 20:37
ja maar dan heeft die klasse toch geen nut, aangezien ik dan dezelfde code (om te schrijven) in elk afzonderlijk programma waarin ik die functionaliteit nodig heb terug moet schrijven.
Ik zou dus een oplossing nodig moeten hebben waarin ik kan schrijven in mijn klasse, anders kan ik er beter mee stoppen.

Gesponsorde links


Pagina:

Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten:

© 2002-2012 Sitemasters.be - Regels - Gehost door: Vircon - Laadtijd: 0.03s