giovedì 24 maggio 2018

Windows Presentation Foundation simulare i tasti VB.Net e C#

Si riporta l'articolo scritto per il sito https://www.iprogrammatori.it/articoli/programmazione/art_windows-presentation-foundation-simulare_1559.aspx


In questo articolo, vedremo come simulare il tasto F5 presente nella tastiera per permettere di aggiornare la finestra del browser di navigazione internet del programma Internet Explorer.
Vedremo come al click di un pulsante, verrà eseguita la funzione di aggiornamento del browser Microsoft, il tutto con il linguaggio di programmazione VB.Net e C# .
Utilizzeremo le API di Windows, per intercettare il programma Internet Explorer, metterlo in primo piano ed eseguire il comando di aggiornamento pagina tramite il tasto F5.

Creazione del progetto

Si crea un nuovo progetto di tipo Windows Presentation Foundation nel linguaggio di proprio interesse.
Aggiungiamo alla form, in particolare alla pagina MainWindow, un pulsante, con il quale andremo a fare il refresh e chiudere l’applicazione. Dopo aver aggiunto al progetto il pulsante e personalizzato a proprio piacimento, aggiungiamo al progetto, il riferimento alla libreria System.Windows.Forms, tramite il menu aggiungi riferimenti dalla finestra di esplora soluzioni.

Stesura del codice

Facciamo doppio click sul pulsante, in modo che passiamo in visualizzazione codice.
Aggiungiamo lo spazio dei nomi relativo all’utilizzo delle API, qui di seguito il frammento di codice delle suddette operazioni per entrambi i linguaggi.



VB.Net

Imports System.Runtime.InteropServices

 

C#

using System.Runtime.InteropServices;

A questo punto all’interno della classe della nostra form, scriviamo la dichiarazione di API per intercettare la finestra di Internet Explorer.
Qui di seguito la dichiarazione delle suddette operazioni per entrambi i linguaggi.


VB.Net

<DllImport("USER32.DLL", CharSet:=CharSet.Unicode)> _

    Public Shared Function FindWindow(lpClassName As String, lpWindowName As String) As IntPtr

    End Function

 

    <DllImport("USER32.DLL")> _

    Public Shared Function SetForegroundWindow(hWnd As IntPtr) As Boolean

    End Function

 

C#

 

 

        [DllImport("USER32.DLL", CharSet = CharSet.Unicode)]

        public static extern IntPtr FindWindow(string lpClassName,

            string lpWindowName);

 

        [DllImport("USER32.DLL")]

        public static extern bool SetForegroundWindow(IntPtr hWnd);


Scriviamo una funzione che verrà eseguita al click del pulsante, che verifica se tra i vari processi aperti in Windows, c’è anche quello di Internet Exploter, in tal caso, verrà eseguito il tasto di scelta rapida per l’aggiornamento del browser, tramite il metodo SendWait di SendKeys.
Qui di seguito si riporta le dichiarazioni delle suddette operazioni.



VB.Net

Private Sub RefreshExplorer()

        'intercetto la finestra di Internet Exploter

        Dim explorerHandle As IntPtr = FindWindow("IEFrame", Nothing)

 

        ' Verifico se è presente

        If explorerHandle = IntPtr.Zero Then

            MessageBox.Show("Non presente Internet Explorer")

            Return

        End If

 

        SetForegroundWindow(explorerHandle)

 

 

        'aggiorno la pagina

        System.Windows.Forms.SendKeys.SendWait("{F5}")

    End Sub

 

 

C#

private void RefreshExplorer()

        {

           //intercetto la finestra di Internet Exploter

            IntPtr explorerHandle = FindWindow("IEFrame", null);

 

            // Verifico se è presente

            if (explorerHandle == IntPtr.Zero)

            {

                MessageBox.Show("Non presente Internet Explorer");

                return;

            }

 

            SetForegroundWindow(explorerHandle);

          

 

            //aggiorno la pagina

            System.Windows.Forms.SendKeys.SendWait("{F5}");

        }



Ora vediamo come eseguire dal click del pulsante tale funzione.
Nell’evento click del pulsante, dobbiamo eseguire la funzione creato poco fa.


VB.Net

Private Sub Button_Click(sender As Object, e As RoutedEventArgs)

        RefreshExplorer()

    End Sub

 

C#

private void Button_Click_2(object sender, RoutedEventArgs e)

        {

            RefreshExplorer();

        }



Conclusioni

L’articolo ha voluto fornire al lettore una tecnica di come utilizzare le api in Windows Presentation Foundation, per i linguaggi più utilizzati in .Net, per aggiornare la pagina web visualizzata nel browser internet Explorer. L’utilizzo del metodo SendWait di SendKeys, permette di simulare i tasti.

mercoledì 23 maggio 2018

ProjectLibre software gratuito per la gestione dei progetti

Home

Se state cercando un software gratuito ed open source per la gestione dei progetti, potete utilizzare il software ProjectLibre, scaricabile qui https://www.projectlibre.com/ che comprende anche una versione in lingua italiana.
Per il download e maggiori informazioni visitate il sito indicato.

martedì 22 maggio 2018

Microsoft cognitive toolkit

Dal seguente sito https://www.microsoft.com/en-us/cognitive-toolkit/ potete scaricare un Toolkit gratuito ed open source da utilizzare con il linguaggio C# e Python, per la gestione cognitiva di rete rurali.
Un componente che può tornare utile in quelle applicazioni di automazione.
Per il download, maggiore informazioni, esempi ed altro visitate il sito indicato.

lunedì 21 maggio 2018

free tools for visual dev IOT software visuale per applicazioni di tipo internet delle cose

 
Se state cercando un programma gratuito, che vi permette di scrivere applicazioni per l'internet delle cose, qui https://nodered.org/ potete scaricare Node Red, un programma per la realizzazione di applicazioni per IOT in forma visiva.
Il programma è in lingua inglese.

domenica 20 maggio 2018

free ebook Learning Python

Learning Python


Un ebook gratuito ed in lingua inglese per sviluppare con il linguaggio Python, viene offerto dal seguente sito https://sf.tradepub.com/free/w_pacb45/ che offre tramite inserimento del proprio indirizzo email, la possibilità di scaricarlo gratuitamente.
Un ebook di circa 450 pagine.
Per il download e maggiori informazioni visitate il sito indicato.


sabato 19 maggio 2018

download ebook in italiano l'intelligenza artificiale

L'amico Simone, mi segnalo un ebook in italiano sull'intelligenza artificiale.
L'ebook, in formato pdf è scaricabile gratuitamente senza richiedere email o registrazione al seguente sito https://ia.italia.it/assets/librobianco.pdf ed è composto da circa 80 pagine.
Per il download e maggiori informazioni visitate il sito indicato.
Ringrazio l'amico Simone per la segnalazione.

venerdì 18 maggio 2018

Rilasciata la versione TypeScript 2.9 RC

Come riportato dal seguente post https://blogs.msdn.microsoft.com/typescript/2018/05/16/announcing-typescript-2-9-rc/ da qualche giorno è disponibile la versione Release Candidate di TypScript.
Nel post si trova i siti per il download (per le varie versioni di Visual Studio) ed esempi di codice.

PostgresSql getdate

Nel database PostgreSQL se vogliamo utilizzare la funzione che ci restituisce la data odierna, che in Sql Server è GetDate(), dobbiamo utilizzare la funzione current_date senza le parentesi tonde.

giovedì 17 maggio 2018

download free ebook Akka.NET

Akka.NET Succinctly

Se state cercando un ebook sul componente Akka.net qui https://www.syncfusion.com/ebooks/akka_net_succinctly trovate un ebook in lingua inglese e formato pdf o per dispositivi mobile da scaricare.
Il libro di circa 120 pagine fornisce le basi per utilizzare tale toolkit.

mercoledì 16 maggio 2018

C# rilevare da un file il byte array

Qui di seguito un frammento di codice nel linguaggio C#, che permette di rilevare da un file esistente, il byte array, lo streaming.


 byte[] listBytes = System.IO.File.ReadAllBytes("C:\\cartella\\file.docx");

martedì 15 maggio 2018

Asp.Net MVC Store update, insert, or delete statement affected an unexpected number of rows (0). Entities may have been modified or deleted since entities were loaded.

Può capitare che durante la fase di aggiornamento di un record, nelle nostre applicazioni Asp.Net MVC, utilizzando Entity Framework, venga visualizzato il messaggio di errore: "Store update, insert, or delete statement affected an unexpected number of rows (0). Entities may have been modified or deleted since entities were loaded.", questo perchè nella pagina web cshtml non è stato impostato il campo chiave, e quindi non ha la chiave identificativa del record.

Basterà mettere in maniera nascosto il campo chiave.

Qui di seguito un esempio

Asp.Net MVC - cshtml

 @Html.HiddenFor(model => model.CampoID)


Entity Framework

OggettoEntity entita = new OggettoEntity ();

 entita .Configuration.AutoDetectChangesEnabled = false;
                entita .Entry(entitaTabella).State = System.Data.Entity.EntityState.Modified;

 returnUpdate = entita .SaveChanges();

lunedì 14 maggio 2018

EntityFramework Convalida non riuscita per una o più entità. Per ulteriori dettagli, vedere la proprietà 'EntityValidationErrors'. visualizzare il dettaglio dell'errore

Nel caso che vogliamo visualizzare il dettaglio di un errore in EntityFramework, che visualizza il testo nel message del tipo "Convalida non riuscita per una o più entità. Per ulteriori dettagli, vedere la proprietà 'EntityValidationErrors'." dovremmo utilizzare un catch di tipo DbEntityValidationException

Qui di seguito un esempio di codice:

  try
            {
                 //Codice



            }
            catch (DbEntityValidationException exEntity)
            {


                Console.Write(exEntity.Message);

             
                throw;
               
           
            }


domenica 13 maggio 2018

C# Asp.Net MVC ottenere il percorso di una cartella

Nel caso che abbiamo la necessità di ottenere il percorso di una cartella nel nostro server o meglio nella soluzione, dobbiamo utilizzare il metodo MapPath della classe Server.

Supponiamo di aver creato una cartella di nome temp, nella nostra soluzione e vogliamo mettere i file che si creano di volta in volta, tramite il metodo MapPath possiamo ottenere il percorso.

Qui di seguito un frammento di codice.


 string percorsoNomeFileTemporaneo = Server.MapPath("~/Temp/NomeFile.docx");


venerdì 11 maggio 2018

EventBrite elenco di eventi scientifici e tecnologici

Dal seguente sito https://www.eventbrite.it/d/italy--rome/science-and-tech--events/?crt=regular&sort=date potete consultare l'elenco di eventi tecnologici e scientifici nella città di Roma.
Il sito permette anche di selezionare particolari categorie, quindi non solo questo settore e città.
Una serie di eventi gratuiti o a pagamento.




giovedì 10 maggio 2018

Evento gratuito Red Hat, SAP & IBM Tech Day



Nuova iniziativa gratuita di formazione e soprattutto di infrastrutture tecnologie, quella organizzata dalla società Red Hat, che per il 24 maggio 2018, ha organizzato un evento gratuito a Milano sulle infrastrutture basate su sistemi RedHat, sap e IBM.
Per maggiori informazioni ed iscrizioni visitate il seguente sito https://www.redhat.com/it/events/sap-ibm-tech-day-italy-2018

mercoledì 9 maggio 2018

asp.net mvc dropdownlist selected value

Se vogliamo impostare un valore in un controllo di tipo  @Html.DropDownList dobbiamo cambiare il metodo con DropDownListFor ed impostare il primo parametro con la proprietà dell'oggetto.

Qui di seguito un esempio di codice.

@Html.DropDownListFor(p=>p.Classe.ProprietaCampo, new SelectList(((Classe.MioController)this.ViewContext.Controller).GetDati()),  "Seleziona una valore", new { @class = "form-control" })

martedì 8 maggio 2018

download free ebook Xamarin.Forms for macOS

macOS Succinctly

Un nuovo ebook di programmazione sulla piattaforma Xamarin.
Il libro, scaricabile gratuitamente qui https://www.syncfusion.com/ebooks/xamarin_forms_for_mac_os_succinctly fornisce interessanti spunti e le basi per iniziare a programmare sul MacOs.

L'ebook è in lingua inglese e formato pdf o per dispositivi mobile.

lunedì 7 maggio 2018

Asp.Net MVC load partial view document ready in DIV

Il frammento di codice qui di seguito, illustra una tecnica di caricare una partial view, in una view e precisamente in un DIV.


View:

 <div id="Contenitore"></div>


Controller:

 [HttpGet]
        public PartialViewResult CaricaPartialView()
        {

            Classe Oggetto = new Classe();

            return PartialView("NomePartialView", Oggetto );
        }

sabato 5 maggio 2018

Nuova versione di Babylon.js v3.2

Babylon.JS logo

Come riportato dal seguente blog https://blogs.windows.com/buildingapps/2018/05/01/announcing-babylon-js-v3-2/ rilasciata la nuova versione del framework Babylon.js che permette la creazione di siti o meglio applicazioni web, di tipo animazione 3D.
Il sito ufficiale di questo Framework, gratuito ed open source è visibile qui http://www.babylonjs.com/

venerdì 4 maggio 2018

Entity Framework Format of the initialization string does not conform to specification starting at index 108.

Nel caso che abbiamo pubblicato un servizio o sito, e durante l'esecuzione di EntityFramework per estrapolare dati dal database, può capitare che venga visualizzato il messaggio di errore "Format of the initialization string does not conform to specification starting at index 108."
La soluzione è quella di impostare nella connectionstring del web.config del sito web il parametro &quot nell'attributo App.

Qui di seguito un esempio, di connectionstring in cui l'attributo App è impostato con un valore seguito da &quot ossia: App=EntityFramework&quot;


connectionString="metadata=res://*/ModelNome.csdl|res://*/ModelNome.ssdl|res://*/ModelNome.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=NomeServer\SQLEXPRESS;initial catalog=Database;user id=NomeUtente;password=MiaPassword;MultipleActiveResultSets=True;App=EntityFramework&quot;

giovedì 3 maggio 2018

Rilasciata nuova versione .NET Framework 4.7.2

Come riportato dal seguente post https://blogs.msdn.microsoft.com/whereismysolution/2018/05/01/release-of-the-net-framework-4-7-2/ è stata rilasciata la nuova versione del .Net Framework 4.7.2 con alcune fix e novità.

Previsione meteo con indicazioni di precipitazione e nuvolosità precise

Il fuori tema di questa settimana, riguarda le previsioni meteo,
Dal seguente sito http://www.foreca.it/Italy/Rome è possibile consultare l'andamento con una grafica di qualità ed indicazioni precise sulla città di Roma.
Naturalmente selezionando altra città verranno fornite tali informazioni.
Qui http://www.foreca.it/Italy/Rome?map=rain per esempio è possibile scoprire in tempo reale le precipitazione entro 24 ore, mentre qui http://www.foreca.it/Italy/Rome?map=cloud la nuvolosità.
Il sito è in lingua italiana.


mercoledì 2 maggio 2018

Download Microsoft SQL Server 2017 Reporting Services

Dal seguente sito https://www.microsoft.com/it-it/download/details.aspx?id=55252  è possibile scaricare la versione 2017 di Reporting Services per il database Sql Server.

martedì 1 maggio 2018

comprimere ed ottimizzare le immagini online

Comprimere immagini online

Il sito optimizilla visibile qui http://optimizilla.com/it/ offre gratuitamente online, la possibilità di comprimere file immagini, riducendo di molto il peso dell'immagine senza perdere la qualità di essa.
Un sito ben fatto in fatto di funzionalità e velocità.
Il servizio è offerto gratuitamente senza registrazione e senza inserire l'indirizzo email.

lunedì 30 aprile 2018

download gratuito Panda antivirus


Se state cercando la versione gratuita dell'antivirus Panda, che però presenta delle limitazioni, dal seguente sito https://www.pandasecurity.com/italy/homeusers/solutions/free-antivirus/ potete scaricare la versione gratuita.
Nel sito inoltre è possibile consultare anche le versioni a pagamento e quelli per dispositivi mobile.
Il sito è in lingua italiana, per il download e maggiori informazioni visitate il sito indicato

domenica 29 aprile 2018

C# Asp.Net mvc redirect another view

Se da un controller vogliamo aprire una nuova pagina, passando un parametro, è questa si trova in un'altra cartella dobbiamo utilizzare RedirectToAction .

Supponiamo di avere nella cartella "Anagrafica" una pagina denominata "Dettaglio" il quale accetta un parametro di tipo intero, e dobbiamo richiamarla dal un controller situato nella cartella home.

Il frammento di codice permette  di richiamare la viewer Dettaglio.


public ActionResult DettaglioAnagrafica(int id)
        {
       
            System.Web.Routing.RouteValueDictionary RouteInfo = new System.Web.Routing.RouteValueDictionary();
            RouteInfo.Add("id", id);
            return RedirectToAction("Dettaglio", "Anagrafica", RouteInfo);
        }

Questo metodo, che si trova nel controller Home, richiamato dalla pagina index, permette di aprire la pagina dettaglio nella cartella Anagrafica.


sabato 28 aprile 2018

asp.net mvc view datatable

Nel caso che vogliamo utilizzare nel viewer un oggetto di tipo DataTable, non dobbiamo definire nulla nella pagina.

Qui di seguito un esempio di codice ed utilizzo

Nel controller:

 DataTable dttDati = GetDataTable();


            return PartialView("_lista", dttDati );

Nel viewer:

@if (Model.Rows.Count == 0)
{
    @:Nessun elemento
}


 table id="table" width="100%">
        <thead

            <tr>
           
         
                @foreach (System.Data.DataColumn elemento in Model.Columns)
                {                                       
                    <th width="300px" style="background-color:#1ba1e2"> @Html.DisplayFor(modelItem=> elemento.ColumnName) </th>
                }

            </tr>
        </thead>


   <tbody
            @foreach (System.Data.DataRow item in Model.Rows)
            {
                <tr
                    <td width="500px">
                     Dati
                    </td
                    @for (int ContaColonne = 1; ContaColonne < Model.Columns.Count; ContaColonne++)
                    {
                        <td width="300px">
                            @Html.DisplayFor(modelItem => item[ContaColonne] )
                        </td>
                    }
                 

                </tr
               
            }



        </tbody

venerdì 27 aprile 2018

free ebook The Kademlia Protocol

The Kademlia Protocol Succinctly

Un ebook gratuito ed in lingua inglese sulla comunicazione tra sistemi.
Il manuale, in formato pdf, fornisce interessanti spunti sulla comunicazione telematica.
Per maggiori informazioni e per il download gratuito (richiede una semplice registrazione) visitate il seguente sito https://www.syncfusion.com/ebooks/kademlia_protocol_succinctly

giovedì 26 aprile 2018

VSTO Excel realizzare un componente per generare un file da due file VB.Net e C#

Si riporta l'articolo scritto per il sito https://www.iprogrammatori.it/articoli/programmazione/art_vsto-excel-realizzare-un-componente-per-_1583.aspx


In questo articolo vedremo come creare un file Excel, estrapolando i dati da due distinti file di Microsoft Excel 2016.
L'articolo vuole fornire una tecnica o meglio una procedura, che permette di generare un file Excel con i dati presenti in due file Excel distinti.
Una procedura che sarà attivabile tramite componente aggiuntivo realizzato con VSTO e linguaggio di programmazione C# e VB.Net.
Creazione dei file
Prima di tutto bisogna creare due file Excel, con una colonna che presenti un codice ID per identificare la singola riga.
In questo modo, in base alla colonna identificativa possiamo creare in un file il record comprendente i valori dei singoli record per i due file.
Ma scriviamo adesso il nostro primo file, che chiameremo “FileA.xlsx” nella prima colonna in A1 mettiamo ID in B1 Nome e C1 Cognome, che sono le intestazioni delle colonne. Inseriamo un numero progressivo per ogni riga (ne bastano tre) per la colonna ID e per la colonna nome e cognome, inseriamo dei nostri valori.
Qui di seguito un esempio per il nostro articolo
ID Nome Cognome
1 Marco Aurelio
2 Gianni Bianchi
3 Emanuele Mattei

Ora non ci resta che salvare il file, con il nome “FileA” .
Si crea un secondo file Excel, che chiameremo “FileB.xlsx” e nella colonna A1 impostiamo come valore ID, mentre nella cella B1 impostiamo il valore “citta” e nella cella C1 impostiamo il valore telefono.
Nelle righe sottostanti, per la colonna ID dobbiamo mettere gli stessi valori che abbiamo inserito nel fileA, mentre per la colonna citta e telefono impostiamo dei nostri valori.
Il file di esempio sarà come quello qui di seguito
ID Citta Telefono
1 Roma 3398456321
2 Milano 339187441
3 Mantova 3391980065
A questo punto salviamo il file con il nome “FileB.xlsx”.
Creazione del progetto
A questo punto dobbiamo creare un nuovo progetto di tipo “Componente aggiuntivo per Excel 2016” utilizzando il linguaggio di programmazione di proprio interesse.
In riferimento alla versione di Visual Studio installata, possiamo visualizzare la versione di office 2016 o 2013, l’articolo va bene per tutte le versioni.
Confermate il tutto dopo aver impostato il nome e percorso del progetto
Abbiamo visto in altri articoli precedenti, qui https://www.iprogrammatori.it/articoli/programmazione/art_vsto-creazione-componente-per-outlook-20_1565.aspx la creazione del pulsante nella barra di office, che in questo articolo non verrà descritta.

Stesura del codice

Dopo aver impostato il codice per la creazione dei pulsanti, aggiungiamo un form al  nostro progetto.
Da esplora soluzione, selezioniamo il nostro progetto e facciamo tasto destra, e dal menu che viene visualizzato facciamo click su “Windows Form”.
Nella creazione della form, aggiungiamo tre controlli label, tre controlli textbox ed un pulsante, in modo che ogni Cassella avrà il compito di visualizzare nella textbox il percorso e nome del file Excel, mentre nell’ultima casella, il percorso e nome del file che verrà generato.
Il tutto come verrà visualizzato in figura 1.


Figura 1 – La form per la generazione del file Excel da due esistenti

Come si vede nella figura le prime due caselle riguardano i file Excel nel quale andremo a rilevare i dati, e che in precedenza abbiamo chiamato FileA e FileB.
Mentre nella casella di testo in basso, il percorso e nome del file che verrà generato.
I pulsanti, posti alla fine di ogni casella, avranno il compito di aprire una finestra di dialogo e selezionare i vari file Excel per il rilevamento dei dati. Facciamo doppio click sul primo pulsante in alto a destra, quello con i tre pulsanti posto alla fine della casella con la label “Filea”.
Nell’evento click scriviamo il seguente codice.


VB.Net

   Try

            Dim selezionaFile As New OpenFileDialog

            selezionaFile.Title = "Seleziona il file A da caricare i dati"

            selezionaFile.Filter = "Excel Files (*.xls, *.xlsx)|*.xls;*.xlsx"

            selezionaFile.DefaultExt = "xls|xlsx"

            If selezionaFile.ShowDialog() = System.Windows.Forms.DialogResult.OK Then

                txtFileA.Text = selezionaFile.FileName

            End If

        Catch ex As Exception

            MessaggioErrore(ex.Message)

        End Try

 

C#

try

            {

                OpenFileDialog selezionaFile = new OpenFileDialog();

                selezionaFile.Title = "Seleziona il file A da caricare i dati";

                selezionaFile.Filter = "Excel Files (*.xls, *.xlsx)|*.xls;*.xlsx";

                selezionaFile.DefaultExt = "xls|xlsx";

 

                if (selezionaFile.ShowDialog() == System.Windows.Forms.DialogResult.OK)

                {

                    txtFileA.Text = selezionaFile.FileName;

 

                }

 

 

            }

            catch (Exception ex)

            {

 

                MessaggioErrore(ex.Message);

            }


Come si vede dal codice, precedente, verrà aperta una finestra di dialogo per selezionare il file da estrapolare i dati. A questo punto passiamo in visualizzazione grafica e facciamo doppio click, sul pulsante posto alla fine della casella che viene indicata come File B.
In visualizzazione codice, nell’evento click, scriviamo il seguente codice che permette di selezionare il file, quello denominato FileB.


VB.Net

  Try

            Dim selezionaFile As New OpenFileDialog()

            selezionaFile.Title = "Seleziona il file B da caricare i dati"

            selezionaFile.Filter = "Excel Files (*.xls, *.xlsx)|*.xls;*.xlsx"

            selezionaFile.DefaultExt = "xls|xlsx"

            If selezionaFile.ShowDialog() = System.Windows.Forms.DialogResult.OK Then

                txtFileB.Text = selezionaFile.FileName

            End If

        Catch ex As Exception

            MessaggioErrore(ex.Message)

        End Try

 

C#

try

            {

                OpenFileDialog selezionaFile = new OpenFileDialog();

                selezionaFile.Title = "Seleziona il file B da caricare i dati";

                selezionaFile.Filter = "Excel Files (*.xls, *.xlsx)|*.xls;*.xlsx";

                selezionaFile.DefaultExt = "xls|xlsx";

 

                if (selezionaFile.ShowDialog() == System.Windows.Forms.DialogResult.OK)

                {

                    txtFileB.Text = selezionaFile.FileName;

 

                }

 

 

            }

            catch (Exception ex)

            {

 

                MessaggioErrore(ex.Message);

            }



Ora non ci resta che passare di nuovo in visualizzazione grafica per selezionare l’ultimo pulsante, quello posto alla fine della casella di testo contraddistinta con l’etichetta “Nome nuovo file”.
In questo caso, andremo ad utilizzare la classe per la gestione delle finestre di dialogo per il salvataggio, in modo da impostare il percorso e nome del file.
Qui di seguito il frammento di codice per entrambi i linguaggi.



VB.Net

Try

            Dim selezionaFile As New SaveFileDialog()

            selezionaFile.Title = "Seleziona il file da creare"

            selezionaFile.Filter = "Excel Files (*.xls, *.xlsx)|*.xls;*.xlsx"

            selezionaFile.DefaultExt = "xls|xlsx"

            If selezionaFile.ShowDialog() = System.Windows.Forms.DialogResult.OK Then

                txtNuovoFile.Text = selezionaFile.FileName

            End If

        Catch ex As Exception

            MessaggioErrore(ex.Message)

        End Try

 

 

C#

try

            {

                SaveFileDialog selezionaFile = new SaveFileDialog();

                selezionaFile.Title = "Seleziona il file da creare";

                selezionaFile.Filter = "Excel Files (*.xls, *.xlsx)|*.xls;*.xlsx";

                selezionaFile.DefaultExt = "xls|xlsx";

 

                if (selezionaFile.ShowDialog() == System.Windows.Forms.DialogResult.OK)

                {

                    txtNuovoFile.Text = selezionaFile.FileName;

 

                }

 

 

            }

            catch (Exception ex)

            {

 

                MessaggioErrore(ex.Message);

            }


Termina qui la prima parte dell’articolo, nel successivo articolo andremo a vedere il codice da scrivere per il rilevamento dei dati, e soprattutto la generazione di un solo file con i dati presenti negli altri file Microsoft Excel.

Conclusioni

L’articolo ha fornito le nozioni per la creazione di un programma, che può essere esteso sulla gestione dei dati presenti in più file. In questa prima parte riguardante la creazione di un componente per Excel per la generazione di un file Excel, rilevando i dati da due file Excel.
Nel prossimo articolo, verrà illustrato il codice per la lettura dei dati, e l’inserimento in quello presente.