Come si replica le modifiche da un foglio Excel al secondo in due applicazioni excel separate?

Questo è tutto in C # .NET Excel Interop Automation per Office 2007.

Supponiamo di creare due applicazioni excel e aprire la stessa cartella di lavoro per each applicazione:

  • Come si può impostare l'interface minimalist di Excel con C #?
  • Leggi il file di Excel con OleDB c #, quando viene utilizzato da un altro process
  • Imansible dare un path corretto a una function in C #
  • Come otteniamo un'intervallo calcolato di celle per workheet.get_Range?
  • Apri file excel per l'edizione manuale e il salvataggio
  • Excel addin: posizione assoluta della cella
  • app = new Excel.ApplicationClass(); app2 = new Excel.ApplicationClass(); string fileLocation = "myBook.xslx"; workbook = app.Workbooks.Open(fileLocation, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); workbook2 = app2.Workbooks.Open(fileLocation, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); 

    Ora, voglio replicare qualsiasi modifica che si verifica in workbook2, nella cartella di lavoro. Ho capito che posso colbind l'evento SheetChanged per catturare le modifiche delle cellule:

     app.SheetChange += new Microsoft.Office.Interop.Excel.AppEvents_SheetChangeEventHandler(app_SheetChange); void app_SheetChange(object Sh, Microsoft.Office.Interop.Excel.Range Target) { Excel.Worksheet sheetReadOnly = (Excel.Worksheet)Sh; string changedRange = Target.get_Address(missing, missing, Excel.XlReferenceStyle.xlA1, missing, missing); Console.WriteLine("The value of " + sheetReadOnly.Name + ":" + changedRange + " was changed to = " + Target.Value2); Excel.Worksheet sheet = workbook.Worksheets[sheetReadOnly.Index] as Excel.Worksheet; Excel.Range range = sheet.get_Range(changedRange, missing); range.Value2 = Target.Value2; } 

    Come si cattura calcolare i cambiamenti? Posso agganciare l'evento di calcolo, ma l'unica cosa che viene passata è il foglio, non le celle aggiornate. Ho cercato di forzare un app.Calculate () o app.CalculateFullRebuild (), ma nulla aggiorna nell'altra applicazione. L'evento di modifica non viene sparato quando le formule cambiano (ad esempio un controllo slider causa un evento SheetCalculate e non un evento SheetChange)

    C'è un modo per vedere quali formule sono state aggiornate? Oppure c'è un modo più semplice per sincronizzare due cartelle di lavoro in modo programmato in tempo reale?

  • Fai OledDBcoonection where Microsoft Office 2010 non è installato
  • Cambiare il colore delle celle in base al valore di un'altra cella
  • Database MySQL non riconoscere i caratteri cinesi estratti da file Excel (xls)
  • VBA, Metodo 'Apri' dell'object 'Cartelle di lavoro' non riuscito
  • Excel per l'applicazione
  • Macro Trova le celle vuote e Sostituisci
  • 2 Solutions collect form web for “Come si replica le modifiche da un foglio Excel al secondo in due applicazioni excel separate?”

    Non credo che esista un evento diretto che ti dirà quali celle vengono calcolate, poiché la propagazione degli events è falsata, altrimenti la function di calcolo finirà in un ciclo infinito. Notare inoltre che la modifica dei fogli inizia il calcolo automatico. E il calcolo succede in tutto il foglio non solo le modifiche, per assicurarsi che vi siano modifiche negli indirizzi delle formule. Spero che questo ti aiuti.

    Nel caso in cui due utenti modificino le stesse celle nel file di Excel, il secondo utente che salva la cartella di lavoro viene presentato con una domanda pop-up. Questo notifica all'utente che ha apportto modifiche a una cella modificata da un altro utente dal suo ultimo salvataggio. Le viene data l'opzione di mantenere le proprie modifiche, eliminando così l'altro utente o cancellando le sue recenti modifiche. Questa è la pratica predefinita comune quando si lavora nei fogli di calcolo di Excel. Tuttavia, questo comportmento può essere distriggersto nella scheda "Avanzate" della window "Condividi cartelle di lavoro".

    Per saperne di più: Come controllare più utenti su un foglio di calcolo di Excel. eHow.com http://www.ehow.com/how_5913825_control-users-one-excel-spreadsheet.html#ixzz0xcXAZvP1

    Microsoft Office Excel Spreadsheet è il miglior software di Office, Excel VBA e formule Excel rendono il foglio di calcolo più veloce.