Domanda

Su questo progetto a cui sto lavorando in questo momento, una delle più recenti richieste di funzionalità è l'output delle informazioni di spesa che sono archiviate in un rapporto spese che corrisponde a un foglio di lavoro Excel che già utilizzano per tutte le loro note spese.

Ero curioso di sapere se c'era un modo per prendere questo foglio di lavoro Excel (con tutto il suo layout già fatto) e semplicemente compilare le parti che il nostro sistema traccia e quindi servirlo come file .xls per l'utente senza dover eseguire l'automazione di Excel o altri metodi che richiedono l'installazione di Excel sul server.

Nota: l'ambiente di sviluppo è ASP.NET 2.0

È stato utile?

Soluzione

Sono abbastanza sicuro che puoi usare OleDB per aprire il file Excel (con il modello)

Esempio 1

string ConnectionString=@"Provider=Microsoft.Jet.OLEDB.4.0;
                    Data Source=C:\Test Projects\Excel example\Excel - reading an excel file\ReadThis.xls;
                    Extended Properties=Excel 5.0";

//Create the connection
 System.Data.OleDb.OleDbConnection ExcelConnection = new System.Data.OleDb.OleDbConnection(ConnectionString);

Link all'articolo 1

Esempio 2

string filename = @"C:\testdata.xls";

string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +

"Data Source=" + filename + ";" +

"Extended Properties=Excel 8.0;";

OleDbConnection objConn = new OleDbConnection(connectionString);

objConn.Open();

OleDbCommand ObjCommand = new OleDbCommand("SELECT * FROM [Sheet1$]", objConn);

OleDbDataAdapter objAdp = new OleDbDataAdapter();

objAdp.SelectCommand = ObjCommand;

DataSet myDataSet = new DataSet();

objAdp.Fill(myDataSet);

DataTable dataTable = myDataSet.Tables["Sheet1<*>quot;];

Link a Articolo 2

Dopo aver aperto la connessione dovresti essere in grado di leggere e scrivere come preferisci!

Altri suggerimenti

Puoi provare Spire.XLS ( http: //www.e-iceblue. com / xls / xlsintro.htm )

Non è gratuito, ma fa un ottimo lavoro di lettura e creazione di documenti XLS senza dover avere Excel presente sul server.

Uno dei modi in cui l'ho fatto è usare Office XML per generare i documenti. Dato che hai un formato specifico in cui deve essere presente il documento, le cose potrebbero essere un po 'più difficili, ma il modo in cui in passato ho fatto le cose è esportare i dati che devono essere visualizzati sul rapporto in un file XML ( salvato su disco o in memoria) e quindi applicare una trasformazione XSL per convertire le cose nel documento correttamente formattato che Excel può caricare. Per riferimento, ecco alcuni link per te:

Prova Aspose.Cells - funziona benissimo per questo.

La griglia RAD di Telerik per Asp.NetAJAX ha una buona esportazione di Excel.

Altre due soluzioni sono:

  • usa OpenOffice (hanno una modalità in cui nessuna UI è caricata / mostrata)
  • utilizza la FileHelpers (puoi leggere / scrivere dati in un file Excel)

Devo dire che non ho esperienza con nessuno dei due ... ma sembrano solide alternative accanto al provider JET.OLEDB e da Xml-to-Excel a Xsl (che entrambi ho usato in passato) menzionato da Chris e Rob.

Volevo solo aiutarti nella tua strada e menzionare alcune alternative (non mi aspetto molti punti :))

Sebbene questo non elabori i tuoi fogli di calcolo esistenti, un modo davvero semplice e di bassa tecnologia per generare file Excel è quello di creare un file html con il tipo di contenuto corretto e utilizzare l'estensione .xls. Quando Excel (sul client) apre il file, viene trattato come se fosse un foglio di calcolo nativo.

Esempio:

<html>
    <head>
        <meta http-equiv="Content-Type" content="application/vnd.ms-excel" />
        <title></title>
    </head>
    <body>
        <table>
            <tr>
                <td><b>Forename</b></td>
                <td><b>Gender</b></td>
            </tr>
            <tr>
                <td>Simon</td>
                <td>Male</td>
            </tr>
            <tr>
                <td>Katy</td>
                <td>Female</td>
            </tr>
        </table>
    </body>
</html>

Avvertenze: ovviamente non includeresti tutta la rientranza e la spaziatura nel file reale! Sto usando Excel 2003.

Un altro piccolo vantaggio di questa tecnica è che questi file sono molto efficienti da generare.

Lati negativi: non ho trovato il modo di trasformare HTML in più fogli di lavoro o di fare qualcosa di particolarmente tecnico.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top