Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    297

    Aggiornare file EXCEL già creato

    Ciao a tutti.
    Premetto che ho fatto già una ricerca sul forum e che mi ha dato anche qualche dritta, però non sono riuscita a risolvere completamente.

    Io ho un file in excel costituito da 10 fogli pieni di calcoli e tabelle.
    Nel primo foglio, il mio cliente, ha inserito una specie di form in cui andando ad inserire 5 dati praticamente si innescano una serie di cacoli che cambiano i vari valori dentro ai 10 fogli.

    Dovendo presentare questo progetto all'università, mi ha chiesto se riesco a creargli una maschera (un form) di inserimento dati in una pagina web in modo che lui faccia vedere solo il file di excel aggiornato.

    Praticmente dovrei fare l'aggiornamento di un file di excel già esistente e con già dei cacoli da una form in asp.

    Sono partita creando semplicemente un foglio di excel con A1 + B1 -> risultato in C1 ed utilizzando la segiuente programmazione che ho trovato qui sul forum

    codice:
    'APRO LA CONNESSIONE ODBC AD UN FILE DI EXCEL
    	Set cnConn = Server.CreateObject("ADODB.Connection")
    	cnConn.open "ADOExcel"
    	
    	
    	'APRO IL RANGE DI DATI CHE SONO ANDATA A DEFINIRE NEL FILE DI EXCEL
    	sqlRange = "SELECT * FROM RANGE_CALCOLO"
    	Set rsRange = Server.CreateObject("ADODB.Recordset")
    	rsRange.Open sqlRange, cnConn, 3, 2
    	
    	
    	'-------------------------------------------------
    	'VISUALIZZAZIONE DEI DATI PRIMA DELL'AGGIORNAMENTO
    	'-------------------------------------------------
    	Response.Write("PRIMA DELL'AGGIORNAMENTO")
    	Response.Write("<TABLE>")
    		
    		'PRIMA RIGA CON NOME DELLE COLONNE
    		Response.Write("<TR>")
    		For X = 0 To rsRange.Fields.Count - 1
    			Response.Write("<TD>" & rsRange.Fields.Item(X).Name & "</TD>")
    		Next
    		Response.Write("</TR>")
    		
    		
    		'INIZIO DEL CICLO DELLE RIGHE SOTTOSTANTI
    		Do while not rsRange.EOF
    			
    			'RIGHE SUCCESSIVE DEL FILE .XLS
    			Response.Write("<TR>")
    			For X = 0 To rsRange.Fields.Count - 1
    				Response.write("<TD>" & rsRange.Fields.Item(X).Value &"</TD>")
    			Next
    			Response.Write("</TR>")
    		
    		'PROSEGUO DEL CICLO DELLE RIGHE SOTTOSTANTI
    		rsRange.Movenext
    		loop
    		rsRange.MoveFirst
    	
    	Response.Write("</TABLE>")
    	
    	
    	'---------------------------------------
    	'TEST DI VISUALIZZAZIONE NUMERI DI CELLA
    	'---------------------------------------
    	contaCelle = 0
    	Do while not rsRange.EOF
    	For X = 0 To rsRange.Fields.Count - 1
    		
    		response.Write(rsRange.Fields.Item(X).Value &" - "& contaCelle &"
    ")
    		contaCelle = contaCelle + 1
    	
    	Next
    	
    	'PROSEGUO DEL CICLO DELLE RIGHE SOTTOSTANTI
    	rsRange.Movenext
    	loop
    	rsRange.MoveFirst
    	
    	
    	'--------------------
    	'SCRITTURA NUOVI DATI
    	'--------------------
    	contaCelle = 0
    	Do while not rsRange.EOF
    	For X = 0 To rsRange.Fields.Count - 1
    		
    		if cInt(contaCelle) = 1 then rsRange.Fields(1).Value = "10"
    		if cInt(contaCelle) = 4 then rsRange.Fields(1).Value = "30"
    		If cInt(contaCelle) = 1 OR cInt(contaCelle) = 4 then rsRange.Update
    	
    		contaCelle = contaCelle + 1
    	
    	Next
    	
    	'PROSEGUO DEL CICLO DELLE RIGHE SOTTOSTANTI
    	rsRange.Movenext
    	loop
    	rsRange.MoveFirst
    
    
    
    	'---------------------------------------------
    	'VISUALIZZAZIONE DEI DATI DOPO L'AGGIORNAMENTO
    	'---------------------------------------------
    	response.Write("<hr>")
    	Response.Write("DOPO L'AGGIORNAMENTO")
    	Response.Write("<TABLE>")
    		
    		'PRIMA RIGA CON NOME DELLE COLONNE
    		Response.Write("<TR>")
    		For X = 0 To rsRange.Fields.Count - 1
    			Response.Write("<TD>" & rsRange.Fields.Item(X).Name & "</TD>")
    		Next
    		Response.Write("</TR>")
    		
    		
    		'INIZIO DEL CICLO DELLE RIGHE SOTTOSTANTI
    		Do while not rsRange.EOF
    			
    			'RIGHE SUCCESSIVE DEL FILE .XLS
    			Response.Write("<TR>")
    			For X = 0 To rsRange.Fields.Count - 1
    				Response.write("<TD>" & rsRange.Fields.Item(X).Value &"</TD>")
    			Next
    			Response.Write("</TR>")
    		
    		'PROSEGUO DEL CICLO DELLE RIGHE SOTTOSTANTI
    		rsRange.Movenext
    		loop
    		rsRange.MoveFirst
    	
    	Response.Write("</TABLE>")
    	
    	
    	'CHIUDO IL RECORDSET RSRANGE
    	rsRange.Close
    	Set rsRange = Nothing
    	
    	'CHIUDO LA CONNESSIONE
    	cnConn.Close
    	Set cnConn = Nothing
    La scrittura delle celle A1 e B1 me la fa, ma non riesce ad aggiornare il calcolo in C1
    Qualche idea?
    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    297
    Io sto ancora facendo delle prove e sono riuscita finalementa a scrivere correttamente dentro al file di excel e se in A1 = 10 e B1 = 15 --> C1 = 25
    Du conseguenza il calcolo corretto me lo fa giusto.

    Il problema è visualizzarlo a video. Mi spiego.
    Con il seguente codice
    codice:
    sqlRange = "SELECT * FROM tb_elenco"
    	Set rsRange = Server.CreateObject("ADODB.Recordset")
    	rsRange.Open sqlRange, objConn, 1, 1
    	
    	contaCelle = 0
    	Do while not rsRange.EOF
    	For X = 0 To rsRange.Fields.Count - 1
    		
    		response.Write(rsRange.Fields.Item(X).Value &" - "& contaCelle &"
    ")
    		contaCelle = contaCelle + 1
    	
    	Next
    	
    	'PROSEGUO DEL CICLO DELLE RIGHE SOTTOSTANTI
    	rsRange.Movenext
    	loop
    	rsRange.MoveFirst
    	
    	'CHIUDO IL RECORDSET RSRANGE
    	rsRange.Close
    	Set rsRange = Nothing
    leggo il risultato del mio calcolo.

    Al primo giro se A1 = 10 e B1 = 15 mi fa vedere correttamente C1 = 25

    Ma se rilancio la procedura di scrittura e metto A1 = 25 e B1 = 15 automaticamente la routine di lettura non mi fa vedere C1 = 40 ma continua a farmi vedere C1 = 25 (il risultato di prima) fintanto che non vado ad aprire fisicamente l'excel e non lo salvo ... solo in quel momento aggiornando la pagina con la routine di lettura vedo correttamente C1 = 40.

    Qualche idea?
    Risolvo una cosa e c'è subito qualcos'altro di complicato ... uff

    Grazie

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    364
    Ciao,
    la discussione è vecchia ma provo lo stesso a chiederti se hai risolto il problema "aggiornare il calcolo in C1", perchè mi trovo nella stessa situazione e non so come risolvere.
    Ce un modo di salvare un file .xls da ASP??


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.