leggere da foglio excel - prompt

ciao a tutti, sto cercando di leggere dei dati da un foglio excel, funziona tutto solo che quando lancio l’import mi chiede sempre di salvare il foglio excel!

a volte, anche se excel chiuso, mi esce il prompt dove dice che serve l’autorizzazione!!!

questo il codice, non ci vedo nulla di strano…

  //puliamo la griglia
  LstCommesse.DeleteAllRows
  
  //excel session import
  //read excel worksheet sessions into database
  
  dim excel as new ExcelApplication
  dim book as ExcelWorkbook
  dim f as folderitem
  dim dte as variant
  dim cella1,cella2,cella3,cella4,cella5,cella6,cella7 as string
  
  cella1="XXX"
  'excel.visible=true
  
  f=SpecialFolder.Desktop.child("produzione.xlsx")
  book=excel.Workbooks.open(f.ShellPath)
  
  dim i as Integer
  i=5
  while cella1.Trim.Len>0
    i=i+1
    cella1="B"+i.ToText.Trim
    cella2="C"+i.ToText.Trim
    cella3="D"+i.ToText.Trim
    cella4="E"+i.ToText.Trim
    cella5="F"+i.ToText.Trim
    cella6="G"+i.ToText.Trim
    cella7="H"+i.ToText.Trim
    
    //assegniamo i valori
    cella1=excel.Range(cella1).Text
    cella2=excel.Range(cella2).Text
    cella3=excel.Range(cella3).Text
    cella4=excel.Range(cella4).Text
    cella5=excel.Range(cella5).Text
    cella6=excel.Range(cella6).Text
    cella7=excel.Range(cella7).Text
    
    //popoliamo la griglia
    if cella1.Trim.Len>0 then
      LstCommesse.AddRow(cella1,cella2,cella3,cella4,cella5,cella6,cella7)
    end if
  wend
  //chiudiamo il file excel
  book.Close

Guarda i parametri di Close, dovrebbero esserci le opzioni per chiudere senza salvare.

sto cercando antonio, non riesco a trovare le opzioni…

Vado a memoria, tanto che non uso l’automazione…
book.close(false)

Guarda qua l’api:
https://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.workbook.close.aspx
Comunque come dice Antonio, basta il False
L’api precisa dice:
Workbook.Close Method (SaveChanges,?Filename,?RouteWorkbook)

Tutti opzionali, in particolare SaveChanges dice:

  • true. Saves the changes to the workbook. If there is not yet a file name associated with the workbook, then FileName is used. If FileName is omitted, the user is asked to supply a file name.

  • false. Does not save the changes to the workbook.

  • Omitted. Displays a dialog box asking the user whether or not to save changes.

Se lo ometti appare la dialog, by design…

grazie, provo e vi aggiorno!

perfetto! inserendo:

  //chiudiamo il file excel
  book.Close(false)

ho risolto il problema!

grazie a tutti

… la risposta era la mia… ma va bene lo stesso :slight_smile:
L’importante che hai risolto il problema.

@Antonio mica avevo dato una risposta diversa, ho solo puntualizzato con un link all’api, senza leggere l’api uno non si rende conto di cosa i parametri fanno e perch.

nessun problema Michelangelo, stavo scherzando e volevo rimarcare l’importanza che il problema fosse stato risolto.