C # Comment lire, valider des données de feuille Excel multi-onglets et les importer dans des tables de serveurs SQL

architecture c#-4.0 dapper sql-server-2008-r2

Question

Je dois télécharger les données du catalogue de commerce électronique en lisant les données de plusieurs onglets et insérer ces données dans les tables du serveur SQL.

Quel est le meilleur moyen d'implémenter la même chose en utilisant c # et dapper .net et SQL Server.

Merci Rakesh

Réponse populaire

Voici l'exemple de code que j'ai utilisé

using Excel;
using System.IO;
using System.Data;
using System.Data.OleDb;
using System.Text;

 public partial class UserDashboard : BasePage
 {
    protected void lnkImportExcel_Click(object sender, EventArgs e)
    {
        try
        {
            if (!FpdUnConLoanUpload.HasFile)
            {
                this.DisplayAlert(ref AlertctrlMessage, "Please select an excel (.xlsx) or CSV file.", AlertNotification.Error);
                return;
            }
            if (!FpdUnConLoanUpload.FileName.Trim().ToLower().Split('.')[1].Equals("xlsx") && !FpdUnConLoanUpload.FileName.Trim().ToLower().Split('.')[1].Equals("csv"))
            {
                this.DisplayAlert(ref AlertctrlMessage, "Please select a valid excel (.xlsx) or CSV file.", AlertNotification.Error);
                return;
            }

            Guid nimgGUID = Guid.NewGuid();
            if (!FpdUnConLoanUpload.FileName.Trim().ToLower().Equals(""))
            {
                if (FpdUnConLoanUpload.FileName.Trim().ToLower().Split('.')[1].Equals("xlsx"))
                {
                    IExcelDataReader iExcelDataReader = null;

                    string TargetPathFileSave = Server.MapPath(ConfigurationManager.AppSettings.Get("ImportFiles"));

                    TargetPathFileSave = TargetPathFileSave + "\\";

                    if (!System.IO.Directory.Exists(TargetPathFileSave))
                    {
                        System.IO.Directory.CreateDirectory(TargetPathFileSave);
                    }

                    TargetPathFileSave = TargetPathFileSave + "\\" + nimgGUID.ToString().Trim() + FpdUnConLoanUpload.FileName.Substring(FpdUnConLoanUpload.FileName.LastIndexOf('.')).ToLower();
                    FpdUnConLoanUpload.PostedFile.SaveAs(TargetPathFileSave);

                    FileStream oStream = File.Open(TargetPathFileSave, FileMode.Open, FileAccess.Read);
                    DataSet dsUnUpdated = new DataSet();
                    if (FpdUnConLoanUpload.FileName.Trim().ToLower().Split('.')[1].Equals("xlsx"))
                    {
                        iExcelDataReader = ExcelReaderFactory.CreateOpenXmlReader(oStream);
                        iExcelDataReader.IsFirstRowAsColumnNames = true;
                        dsUnUpdated = iExcelDataReader.AsDataSet();
                        iExcelDataReader.Close();
                    }

                    if (dsUnUpdated != null)
                    {
                        Session["dsUnUpdated"] = dsUnUpdated;
                        LinkProcess.Visible = true;
                        grdSearchData.DataSource = dsUnUpdated;
                        grdSearchData.DataBind();
                    }
                    else
                    {
                        this.DisplayAlert(ref AlertctrlMessage, "No Data Found In File!", AlertNotification.Error);
                    }
   }
        catch (Exception exc)
        {
            lblcount.Text = "";
            this.DisplayAlert(ref AlertctrlMessage, exc.Message, AlertNotification.Error);
        }
    }
    }
}

maintenant dans le jeu de données rempli, vous aurez toutes les données selon les feuilles en tant que tableau de données

traverser les tables de données dans ds et les sauvegarder dans db




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi