Hvordan skrive en Excel-arbeidsbok til en Memory i .NET?

stemmer
13

Hvordan skriver jeg en Excel-arbeidsbok til en MemoryStreamuten først å lagre den til filsystemet?

Alle alternativene innenfor Microsoft.Office.Interop.Excel.WorkBooklagringsalternativene ta et filnavn.

Publisert på 01/10/2008 klokken 04:54
kilden bruker
På andre språk...                            


5 svar

stemmer
6

Jeg har gjort et omfattende arbeid med PIA og med lagring av Excel-filer i et dokumentlager og streaming det ut til nettleseren, og jeg har ikke vært i stand til å finne en løsning med PIA uten først å skrive ut innholdet i filsystemet først.

Jeg tror at du er nødt til å svelge kulen og håndtere filsystemet som et mellomledd. Den gode nyheten er at du kan bare gi filen et unikt navn som en guid eller bruke noen andre tempfilename metode (ikke sikker på om det finnes i .net) og bare slette innholdet når du er ferdig.

Svarte 01/10/2008 kl. 05:07
kilden bruker

stemmer
1

Hvis du bare trenger grunnleggende funksjonalitet fra Excel, kan det være lurt å lage arbeidsbok som en HTML-stream. Det er et annet spørsmål på slik at hand dette .

Dette løser også noen problemer (du kanskje ikke har ennå) om skalerbarhet av løsningen.

Svarte 01/10/2008 kl. 05:14
kilden bruker

stemmer
1

Et annet alternativ ville være å bruke denne gratis bibliotek for eksport arbeidsboken. Den lagringsmetode på arbeidsbok klasse kan enten ta et filnavn eller en bekk.

Svarte 04/10/2008 kl. 12:16
kilden bruker

stemmer
1

Den eneste måten du kan gjøre dette på er hvis du var forberedt på å lage en egendefinert objekt som tillater deg å lagre alle de forskjellige biter av data / formler / VBA / lenker / OLE-objekter som du ønsket å beholde, kopiere fra arbeidsboken til objektet, og så fortsetter det objekt til et minne strøm. I påvirke bruker proxy objekt som går mellom.

Det er ingen måte (som andre har sagt) å skrive en Excel-fil rett til minnet.

Med Excel 2007 OpenXML-formatet, kan du bruke BeforeSave tilfelle av arbeidsboken å ha en tilpasset metode som først setter Avbryt parameter i BeforeSave arrangementet til True, og deretter i stedet serialises den resulterende xml-pakken (som representerer fil) til et objekt i minne.

Svarte 17/05/2010 kl. 02:54
kilden bruker

stemmer
4

Dette kan gjøres med Open XML SDK 2.0. Eric hvit har en stor artikkel om hvordan du arbeider med OOXML-filer i strømmen på Arbeide med In-Memory Open XML dokumenter

Svarte 17/05/2010 kl. 03:14
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more