Eseguire query e visualizzare i dati di Excel usando ASP.NET, ADO.NET e Visual C# .NET

Questo articolo illustra come eseguire query e visualizzare dati da un foglio di lavoro di Excel tramite una pagina ASP.NET (.aspx) tramite Visual C# .NET.

Versione originale del prodotto: ASP.NET
Numero KB originale: 306572

Creare un foglio di lavoro di Excel di esempio

  1. Avviare Microsoft Excel e quindi creare un nuovo foglio di lavoro.

  2. Aggiungere le informazioni seguenti al nuovo foglio di lavoro per creare un database di Excel:

    Numero di riga A B
    1 FirstName LastName
    2 Scott Vescovo
    3 Katie Giordania

    Nota

    Anche se i dati iniziano con la cella A1 in questo esempio, è possibile aggiungere questi dati a tutte le celle adiacenti all'interno del foglio di lavoro.

  3. Evidenziare le righe e le colonne in cui si trova i dati.

  4. Scegliere Nome dal menu Inserisci e quindi fare clic su Definisci.

  5. Nella casella di testo Nomi nella cartella di lavoro digitare myRange1 e quindi fare clic su OK.

  6. Scegliere Salva dal menu File. Nell'elenco Salva in selezionare la radice del server Web , che in genere C:\InetPub\Wwwroot\è . Nella casella di testo Nome file digitare ExcelData.xls. Fare clic su OK.

  7. Scegliere Esci dal menu File.

Creare un esempio di ASP.NET usando Visual C# .NET

Questo esempio di codice illustra come eseguire query e visualizzare informazioni in un foglio di lavoro di Excel. Il codice seguente usa il foglio di lavoro creato nella sezione precedente.

  1. Aprire Microsoft Visual Studio .NET. Viene visualizzato l'ambiente di sviluppo integrato (IDE) di Visual Studio .NET.

  2. Scegliere Nuovo dal menu File, quindi fare clic su Progetto.

  3. Nella finestra di dialogo Nuovo progetto , in Tipi di progetto, fare clic su Progetti Visual C#. In Modelli fare clic su ASP.NET'applicazione Web.

  4. Nella finestra di dialogo Nuovo progetto individuare le caselle di testo Nome e Posizione .

    Nota

    • La casella di testo Nome non è disponibile (viene visualizzata in grigio o disattivata). La casella di testo Percorso contiene il testo (o simile) http://localhost/WebApplication1.
    • Sostituire il testo nella casella di testo Percorso con http://localhost/ExcelCSTeste quindi fare clic su OK. Viene creato un nuovo progetto, che include un Web Form denominato WebForm1.aspx.
  5. Nell'IDE .NET di Visual Studio individuare la finestra Esplora soluzioni. Se non è possibile trovarlo, fare clic su Esplora soluzioni dal menu Visualizza.

  6. In Esplora soluzioni fare clic con il pulsante destro del mouse su WebForm1.aspx e quindi scegliere Visualizza Designer per visualizzare la finestra di progettazione per l'aspetto della pagina. La finestra di progettazione consente di aggiungere controlli e modificare l'aspetto della pagina.

  7. Individuare la casella degli strumenti. A seconda delle impostazioni dell'opzione IDE, la casella degli strumenti può essere visualizzata come una finestra o un pulsante (che spesso viene visualizzato sul lato sinistro dell'IDE). Se non è possibile trovare la casella degli strumenti, fare clic su Casella degli strumenti dal menu Visualizza .

    Se la casella degli strumenti viene visualizzata come pulsante, spostare il puntatore sul pulsante in modo che venga visualizzato il contenuto della casella degli strumenti.

  8. Quando la visualizzazione della finestra di progettazione di un Web Form è attiva, la casella degli strumenti è suddivisa in sezioni, tra cui Web Forms, Componenti, HTML e altre sezioni. Fare clic sulla sezione Web Forms.

  9. Nella sezione Web Forms della casella degli strumenti fare clic su DataGrid e quindi trascinarlo nella finestra di progettazione per WebForm1.

  10. Fare clic con il pulsante destro del mouse su WebForm1.aspx e quindi scegliere Visualizza codice per visualizzare l'origine della pagina code-behind.

  11. Aggiungere le istruzioni seguenti all'inizio della pagina code-behind, sopra la sezione dello spazio dei nomi:

    using System.Data.OleDb;
    using System.Data;
    
  12. Evidenziare il codice seguente, fare clic con il pulsante destro del mouse sul codice e quindi scegliere Copia. In WebForm1.aspx.cs incollare il codice nell'evento Page_Load :

    // Create connection string variable. Modify the "Data Source"
    // parameter as appropriate for your environment.
    String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
    "Data Source=" + Server.MapPath("../ExcelData.xls") + ";" +
    "Extended Properties=Excel 8.0;";
    
    // Create connection object by using the preceding connection string.
    OleDbConnection objConn = new OleDbConnection(sConnectionString);
    
    // Open connection with the database.
    objConn.Open();
    
    // The code to follow uses a SQL SELECT command to display the data from the worksheet.
    // Create new OleDbCommand to return data from worksheet.
    OleDbCommand objCmdSelect =new OleDbCommand("SELECT * FROM myRange1", objConn);
    
    // Create new OleDbDataAdapter that is used to build a DataSet
    // based on the preceding SQL SELECT statement.
    OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();
    
    // Pass the Select command to the adapter.
    objAdapter1.SelectCommand = objCmdSelect;
    
    // Create new DataSet to hold information from the worksheet.
    DataSet objDataset1 = new DataSet();
    
    // Fill the DataSet with the information from the worksheet.
    objAdapter1.Fill(objDataset1, "XLData");
    
    // Bind data to DataGrid control.
    DataGrid1.DataSource = objDataset1.Tables[0].DefaultView;
    DataGrid1.DataBind();
    
    // Clean up objects.
    objConn.Close();
    
  13. Scegliere Salva tutto dal menu File per salvare i file di progetto.

  14. Nel menu Compila fare clic su Compila per compilare il progetto. Questo passaggio prepara il codice nella pagina code-behind in modo che possa essere eseguito.

  15. In Esplora soluzioni fare clic con il pulsante destro del mouse su WebForm1.aspx e quindi scegliere Visualizza nel browser per eseguire il codice.

Spiegazione del codice aggiuntiva

L'esempio di codice in questo articolo usa il provider OLE DB Microsoft Jet per accedere al foglio di lavoro di Excel. Questo codice usa le stringa di connessione seguenti per connettersi al foglio di lavoro:

// Create connection string variable. Modify the "Data Source"
// parameter as appropriate for your environment.
String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + Server.MapPath("../ExcelData.xls") + ";" +
"Extended Properties=Excel 8.0;";

Come indicato dai commenti, è necessario modificare le informazioni sul percorso per il foglio di lavoro di Excel specifico. È inoltre necessario impostare il valore del Extended Properties parametro per connettersi correttamente al file.

Nota

Il stringa di connessione usa la Server.MapPath funzione . Questa funzione accetta un percorso relativo a Microsoft Internet Information Services (IIS) a un file e restituisce un percorso del disco rigido a tale file. Ad esempio, nella sezione Crea foglio di lavoro di Excel di esempio creare ExcelData.xls nella directory radice Web, che in genere si trova in C:\Inetpub\Wwwroot. Viene inoltre creata una sottocartella denominata ExcelCSTest all'interno della cartella Wwwroot e un file denominato WebForm1.aspx all'interno del _ExcelCSTest_folder.

In questo esempio, il percorso del file sul disco rigido è simile C:\Inetpub\Wwwroot\ExcelCSTesta . Wwwroot contiene ExcelData.xls, ExcelCSTest contiene WebForm1.aspx.

Il percorso IIS dei file è simile C:\Web Root\ExcelCSTesta . La radice Web contiene ExcelData.xls, ExcelCSTest contiene WebForm1.aspx.

In questo caso, il percorso relativo dalla pagina WebForm1.aspx al file ExcelData.xls è .. /ExcelData.xls. Oggetto .. / i caratteri informano IIS di aumentare di un livello di cartella. Il codice Server.MapPath("../ExcelData.xls") restituisce quindi la stringa seguente:

C:\Inetpub\Wwwroot\ExcelData.xls

Non è necessario usare Server.MapPath. È anche possibile impostare come hardcoded queste informazioni in un percorso specifico oppure usare qualsiasi metodo per specificare la posizione del file di Excel sul disco rigido.

Riferimenti

Per altre informazioni sull'uso di ADO.NET, vedere Come popolare un oggetto DataSet da un database usando Visual C# .NET

Nota

Le aziende, le organizzazioni, i prodotti, i nomi di dominio, gli indirizzi di posta elettronica, i logo, le persone, i luoghi e gli eventi di esempio illustrati qui sono fittizi. Nessuna associazione con società, organizzazione, prodotto, nome di dominio, indirizzo di posta elettronica, logo, persona, luoghi o eventi reali è prevista o deve essere dedotta.