Problème enregistrement de fichier excel après l'insertion des données
Je veux écrire des données à un fichier excel ( je le fais facilement )
Mais je ne peux pas enregistrer les modifications sur le fichier excel ( en fait j'voir les modifications sur le fichier excel, mais il semble ouvert et après tout, il se produit à certains problèmes tels que "le fichier est déjà ouvert avec le même nom et ainsi de suite ... )
Excel.Application app= new Microsoft.Office.Interop.Excel.Application();
Excel.Workbook appbook= app.Workbooks.Open(appxls, 0, true, 5, "", "", false, Excel.XlPlatform.xlWindows, "\t", true, false, 0, true, Missing.Value, Missing.Value);
Excel.Sheets pages= appbook.Worksheets;
Excel.Worksheet page= (Excel.Worksheet)pages.get_Item(1);
//... j'ai changer quelques valeurs sur le fichier excel et que vous voulez les enregistrer :
//appxls est une chaîne de caractères contenant le chemin d'accès
appbook.SaveAs(appxls, Excel.XlFileFormat.xlWorkbookNormal, Type.Missing, Type.Missing,false, Type.Missing, Excel.XlSaveAsAccessMode.xlShared, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
appbook.Close(true, Missing.Value, Missing.Value);
app.Quit();
Où est le problème, comment puis-je le résoudre à l'aide de Microsoft.interop.
Vous devez vous connecter pour publier un commentaire.
Vous ouvrez le classeur à l'aide du nom de fichier nommé "appxls' en lecture seule. (Le
ReadOnly
paramètre de laWorkbooks.Open
méthode est le troisième paramètre, et vous êtes de passage danstrue
.)Vous êtes plus tard à l'aide de la
Workbook.SaveAs
méthode, mais essayez d'enregistrer le fichier en utilisant le même nom de fichier détenu par votre " appxls variable que vous avez utilisé pour ouvrir le classeur. C'est une tentative d'écraser le fichier en lecture seule que vous avez ouvert, et, par conséquent, est empêché.Je vois deux solutions possibles:
Passer dans
false
pour laReadOnly
paramètre de laWorkbooks.Open
méthode de sorte que vous pouvez l'enregistrer plus tard à l'aide deWorkbook.Save
méthode. Dans votre cas, vous pourriez économiser en appelantappbook.Save()
.Continuer à ouvrir le fichier en lecture seule, mais plus tard lorsque vous utilisez le
Workbook.SaveAs
méthode, vous devez l'enregistrer sous un différents nom.Espérons que cette aide!
J'ai essayé d'utiliser Oledb et a été couronné de succès avec la création d'une zone vide du fichier excel avec le code:
où connectionstring est :
Donc, j'ai un autre problème avec l'ajout de l'insertion et de l'erreur est :
"nombre de valeurs de la requête et de destination, les champs ne sont pas les mêmes"
J'ai écrit ma commande avec précaution, et je ne peux pas trouver l'erreur 🙁 Comment puis-je le résoudre?
Merci !
(c'est important, je suis en train de travailler sur aspx, le code ci-dessus fonctionne à des applications de bureau, mais pour aspx emplacement d'enregistrement doit être de différent, comme responce.outstream que j'ai compris de mes recherches)