|
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)
|
|
offline
|
Lid
|
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
......//..... |
19 antwoorden
|
|
|
offline
|
PHP gevorderde
|
je moet wel je excel-bestand opslaan voor je het afsluit.
|
|
|
|
offline
|
Lid
|
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:
~ExcelDocument()
{
ws.SaveAs(filename,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing);
app.Quit();
}
~ExcelDocument() { ws.SaveAs(filename, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); app.Quit(); }
Lolll
|
|
|
|
offline
|
MySQL beginner
|
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.
|
|
|
|
offline
|
Lid
|
Hoe zou ik dat dan moeten doen?  Ietsje meer uitleg graag
|
|
|
|
offline
|
MySQL beginner
|
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.
|
|
|
|
offline
|
Lid
|
@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?
|
|
|
|
offline
|
MySQL beginner
|
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.
|
|
|
|
offline
|
Lid
|
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.
|
|
|
|
offline
|
MySQL beginner
|
je classes opsplitsen en de schrijf delen in program.cs zetten is mogelijk de enigste of 1 van de weinige opties die je hebt.
|
|
|
|
offline
|
Lid
|
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.
|
Je moet ingelogd zijn om een reactie te kunnen posten.
|
|
|