2017-05-03 1 views
0

J'ai un fichier Excel, besoin d'accès, remplacer des parties du texte et télécharger le fichier modifié. Mais je ne peux pas enregistrer les modifications, je devrais toujours garder la version sur le serveur.Lire Excel, rechercher et remplacer des morceaux de texte dans l'application Web C#

J'ai fait plusieurs recherches, mais je ne peux que changer le fichier et enregistrer les modifications.

J'ai essayé de résoudre avec le lien ci-dessous, j'ai réussi à rechercher et modifier le fichier, mais je ne sais pas comment télécharger et arrêter d'enregistrer les modifications.

Find and replace text in Excel using C#

Merci beaucoup

Répondre

1

Lire le fichier dans un flux de mémoire. Faites vos modifications et écrivez-le dans un tableau d'octets. Utilisez le tableau d'octets bytesInstream pour télécharger et le fichier d'origine reste inchangé.

byte[] byteArray = File.ReadAllBytes("excelFile.xlsx"); 
using (MemoryStream ms = new MemoryStream()) 
{ 
    ms.Write(byteArray, 0, (int)byteArray.Length); 
    using (SpreadsheetDocument doc = SpreadsheetDocument.Open(ms, true)) 
    { 
     // Do work here 
    } 
    // Convert it to byte array 
    byte[] bytesInStream = ms.ToArray(); 
} 

Je suppose que vous utilisez openxml pour apporter vos modifications.

+0

Pour remplacer du texte dans Excel en utilisant openxml vous pouvez vous référer à [this] (http://stackoverflow.com/questions/33719193/openxml-excel-how-to-change-value-of-a-cell-when- value-is-in-sharedstringtable). Notez que la table de chaînes partagée ne contient que du texte inséré dans des cellules. Si vous avez besoin de modifier le texte présent dans les zones de texte, les graphiques, les wordarts, vous devez les récupérer sous le dessin xml. – FortyTwo

+0

Merci beaucoup, ça a parfaitement fonctionné –