Bruke Samarbeid med C #, Excel Lagre endring original. Hvordan oppheve dette?

stemmer
11

Problemet: Legge et Excel-regneark mal. Ved hjelp av kommandoen Lagre med et annet filnavn og deretter avslutte Interop objekt. Dette ender opp med å redde den opprinnelige malen filen. Ikke et resultat som er likt.

public void saveAndExit(string filename)
{        
    excelApplication.Save(filename);
    excelApplication.Quit();
}

Opprinnelige filen åpnes er c: \ test \ template.xls Filnavnet som er gått i er c: \ test \ 7777 (dato) .xls

Er det noen som har et svar?

(Svaret jeg valgte var den mest korrekte og grundig om wbk.Close () krever parametere som sendes til det. Takk.)

Publisert på 26/08/2008 klokken 20:55
kilden bruker
På andre språk...                            


4 svar

stemmer
0

Har du prøvd SaveAs fra regnearket?

Svarte 26/08/2008 kl. 21:48
kilden bruker

stemmer
1

Snarere enn å bruke en ExcelApplication, kan du bruke arbeidsbok objekt og kaller SaveAs () -metoden. Du kan sende den oppdaterte filnavnet der.

Svarte 26/08/2008 kl. 21:53
kilden bruker

stemmer
8

Excel Interop er ganske smertefullt. Jeg gravde opp en gammel prosjekt jeg hadde, gjorde litt fikling, og jeg tror dette er det du leter etter. De andre kommentatorer har rett, men i hvert fall i min erfaring, det er mye mer å ringe SaveAs () enn du forventer hvis du har brukt de samme objektene (uten Interop wrapper) i VBA.

Microsoft.Office.Interop.Excel.Workbook wbk = excelApplication.Workbooks[0];  //or some other way of obtaining this workbook reference, as Jason Z mentioned
wbk.SaveAs(filename, Type.Missing, Type.Missing, Type.Missing,
            Type.Missing, Type.Missing, XlSaveAsAccessMode.xlNoChange, 
            Type.Missing, Type.Missing, Type.Missing, Type.Missing,
            Type.Missing);
wbk.Close();
excelApplication.Quit();

Må elske alle disse Type.Missings. Men jeg tror de er nødvendig.

Svarte 26/08/2008 kl. 22:02
kilden bruker

stemmer
0
  1. Ditto på SaveAs
  2. Når jeg trenger å gjøre Samarbeid jeg opprette en egen VB.NET klassebibliotek og skrive logikken i VB. Det er bare ikke verdt bryet å gjøre det i C #
Svarte 27/08/2008 kl. 12:49
kilden bruker

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