Condividi:        

Creazione unico file excel. c#

Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!

Moderatori: Anthony47, Triumph Of Steel, archimede

Creazione unico file excel. c#

Postdi antonino979 » 26/03/16 15:32

Ciao ragazzi sto impazzendo. Dopo aver elaborato dei file excel ed aver aggiunto una riga presa da un foglio xml , salvo ogni singolo file dopo averlo creato. Il problema è che devo salvare tutto in un unico file accodando i risultati del nuovo file a quelli del vecchio. Purtroppo sono limitato alle librerie excel per questioni legate al server.
In pratica il problema è che facendo nel modo in cui ho postato mi elaboro e mi riscrivo un file excel nuovo per ogni file elaborato.
Mentre devo creare un file unico ed accodare tutte le nuove elaborazioni nello stesso file. grazie per gli eventuali suggerimenti. Grazie mille.

Codice: Seleziona tutto
 public class RecordExcel
        {

            public string NumeroContratto { set; get; }
            public string CodiceCliente { set; get; }
            public string ImportoTassa { set; get; }
            public string CostoEsazione { set; get; }
            public string CostoContratto { set; get; }
            public string Spese { set; get; }
            public string Targa { set; get; }
            public string Servizi { set; get; }
            public string Sconto { set; get; }
            public string Commissioni { set; get; }
            public string Totale { set; get; }

        }
 private void AvviaGenerazioneReports()
        {
         
            DataTable TabellaDati = GetTable();

            foreach (DataRow rigo in TabellaDati.Rows)
            {
                string PROV = rigo["AC"].ToString();
                string NomeFileExcel = rigo["Stampa"].ToString();
                string NomeFileXML = rigo["NomeRIDProdotto"].ToString();
                string NomeFoglioDati = NomeFileExcel.Replace(".xlsx", "").Replace(".xls", "");

                GeneraExcel(PROV, NomeFileExcel, NomeFileXML, NomeFoglioDati);

            }
        }

        private void GeneraExcel(string Provincia, string NomeFileExcel, string NomeFileXML, string NomeFoglioDati)
        {
            // ExportToExcel(GridView1, "ExportedUserDetail");
            string prov = Provincia;
            string PERCORSO = Classi.Costanti.PercorsoCartellaReport;
           // string PERCORSOxml = Classi.Costanti.PercorsoCartellaXML;
            string filename = PERCORSO + "/" + prov + "/" + NomeFileExcel;
            ViewState["file"] = NomeFileExcel;
            //Leggo id dall'Excel
            var ElencoRecords = getDatiExcel(filename);
            //Genero il nuovo file Excel
            SalvaDatiNuovoExcel (ElencoRecords, PERCORSO, prov, NomeFileXML, filename);
         
        }
        private void SalvaDatiNuovoExcel(List <RecordExcel> ElencoRecords,string PERCORSO, string  prov,string  NomeFileXML, string filename)
        {
            string PercorsoXML = Classi.Costanti.PercorsoCartellaXML+"/"+prov+"/"+NomeFileXML;
           
            Microsoft.Office.Interop.Excel._Application oApp;
            Microsoft.Office.Interop.Excel._Worksheet oSheet;
            Microsoft.Office.Interop.Excel._Workbook oBook;
           
            oApp = new Microsoft.Office.Interop.Excel.Application();
            oBook = oApp.Workbooks.Add(true);
            oSheet = (Microsoft.Office.Interop.Excel._Worksheet)oBook.Worksheets.get_Item(1)

                oSheet.Cells[1, 1] = "Contratto numero";
                oSheet.Cells[1, 2] = "Codice Cliente / RIF  Bancario";
                oSheet.Cells[1, 3] = "Targa";
                oSheet.Cells[1, 4] = "Tassa";
                oSheet.Cells[1, 5] = "Costo contratto";
                oSheet.Cells[1, 6] = "Spese";
                oSheet.Cells[1, 7] = "Commisioni";
                oSheet.Cells[1, 8] = "Servizi";
                oSheet.Cells[1, 9] = "Sconti";
                oSheet.Cells[1, 10] = "Totale";
                oSheet.Cells[1, 11] = "RID effettuato";
               
                int Indice = 2;
                foreach (RecordExcel record in ElencoRecords)
                {
                 
                    oSheet.Cells[Indice, 1] = record.NumeroContratto;
                    oSheet.Cells[Indice, 2] = record.CodiceCliente;
                    oSheet.Cells[Indice, 3] = record.Targa;
                    oSheet.Cells[Indice, 4] = record.ImportoTassa;
                    oSheet.Cells[Indice, 5] = record.CostoContratto;
                    oSheet.Cells[Indice, 6] = record.Spese;
                    oSheet.Cells[Indice, 7] = record.Commissioni;
                    oSheet.Cells[Indice, 8] = record.Servizi;
                    oSheet.Cells[Indice, 9] = record.Sconto;
                    oSheet.Cells[Indice, 10] = record.Totale;

                    oSheet.Cells[Indice, 11] = ImportoXML(PercorsoXML, record.CodiceCliente);
                    Indice++;
                }
            }
         
           
             if (oApp.Application.Sheets.Count < 1)
            {

                oSheet = (Microsoft.Office.Interop.Excel.Worksheet)oBook.Worksheets.Add("", "", "", "");
            }
            else
            {
                oSheet = (Microsoft.Office.Interop.Excel.Worksheet)oApp.Worksheets[1];
            }
           
            string PercorsoFileElaborato = string.Format ("{0}_{1}.xls", filename.Replace (".xlsx", "").Replace (".xls", ""),Guid.NewGuid());
            oBook.SaveAs(PercorsoFileElaborato, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookDefault, Type.Missing, Type.Missing,
                false, false, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange,
                Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
            oBook.Close(true, null, null);
            oApp.Quit();
            //////
        }

antonino979
Newbie
 
Post: 1
Iscritto il: 26/03/16 15:27

Sponsor
 

Torna a Programmazione


Topic correlati a "Creazione unico file excel. c#":


Chi c’è in linea

Visitano il forum: Nessuno e 6 ospiti