J'ai écrit une procédure qui va ouvrir un xls à partir d'un disque local, rafraîchir les données et les sauvegarder à nouveau. Cela fonctionne bien.Ouverture d'une feuille de calcul xls par programmation en C# à partir d'un site SharePoint en mode Lecture/Ecriture
Le problème se produit lorsque je remplace le nom de fichier pour pointer vers un site SharePoint. Il ouvre le fichier bien. Actualise le fichier, mais lorsqu'il tente d'enregistrer le fichier, il déclenche une exception avec le message "Impossible d'enregistrer sous ce nom." Le document a été ouvert en lecture seule. ". Si j'essaie de sauvegarder le fichier avec un nom de fichier différent, cela fonctionne correctement.
Est-ce que quelqu'un sait ce qu'il me manque? Je pense que cela doit avoir quelque chose à voir avec la façon dont j'ouvre le dossier. Existe-t-il un autre moyen de forcer l'ouverture du fichier en lecture/écriture?
private static void RefreshExcelDocument(string filename)
{
var xls = new Microsoft.Office.Interop.Excel.Application();
xls.Visible = true;
xls.DisplayAlerts = false;
var workbook = xls.Workbooks.Open(Filename: filename, IgnoreReadOnlyRecommended: true, ReadOnly: false);
try
{
// Refresh the data from data connections
workbook.RefreshAll();
// Wait for the refresh occurs - *wish there was a better way than this.
System.Threading.Thread.Sleep(5000);
// Save the workbook back again
workbook.SaveAs(Filename: filename); // This is when the Exception is thrown
// Close the workbook
workbook.Close(SaveChanges: false);
}
catch (Exception ex)
{
//Exception message is "Cannot save as that name. Document was opened as read-only."
}
finally
{
xls.Application.Quit();
xls = null;
}
}
Merci d'avance pour vos suggestions.
Jonathan
L'URL du document ressemble à "https: //domainname/sites/sitename/Shared%20Documents/filename.xls". Il peut ouvrir ce fichier et enregistrer le fichier dans une URL comme celle-ci, mais il ne peut pas enregistrer dans le même fichier. Vous ne devez pas référencer directement le document dans la base de données car Microsoft peut modifier la méthode de stockage du document pendant la nuit. –