• Winform导入Excel数据到数据库


     public partial class ImportExcel : Form
        {
            AceessHelpers accessHelper = new AceessHelpers();
            public ImportExcel()
            {
                InitializeComponent();
            }
    
            private void btn_importExcelData(object sender, EventArgs e)
            {
                openFileDialog1.Title = "打开文件";
                openFileDialog1.ShowHelp = true;
                openFileDialog1.RestoreDirectory = true;
    
                //openFileDialog1.Filter = "Excel文件(*.xlsx)|(*.xls)";
                if (openFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    this.txt_path.Text = openFileDialog1.FileName;
                }
            }
    
            private void btn_upload_Click(object sender, EventArgs e)
            {
                string path = openFileDialog1.FileName;
    
                System.Data.DataTable dt = GetDataTable(path);
                int result = 0;
                for (int i = 1; i < dt.Rows.Count; i++)
                {
                    string sql = "insert into Products (ProductName,Area,ProductCategory,Customer,Style,StructureStyle,Width,Square,Other) values ('" +
                    Convert.ToString(dt.Rows[i]["F1"]) + "','" + Convert.ToString(dt.Rows[i]["F2"]) + "','" + Convert.ToString(dt.Rows[i]["F3"]) + "','" +
                    Convert.ToString(dt.Rows[i]["F4"]) + "','" + Convert.ToString(dt.Rows[i]["F5"]) + "','" + Convert.ToString(dt.Rows[i]["F6"]) + "','" +
                    Convert.ToString(dt.Rows[i]["F7"]) + "','" + Convert.ToString(dt.Rows[i]["F8"]) + "','" + Convert.ToString(dt.Rows[i]["F9"]) + "')";
    
                    int j = accessHelper.ReturnSql(sql);
                    result = j++;
                }
                if (result > 0)
                {
                    this.Close();
                }
            }
    
            /// <summary>
            /// 读取excel指定页中的内容
            /// </summary>
            /// <param name="strExcelFileName">excel路径</param>
            /// <returns></returns>
            protected System.Data.DataTable GetDataTable(string strExcelFileName)
            {
                //DataSet myDs = new DataSet();
                System.Data.DataTable dt = new System.Data.DataTable();
                DataRow myRow;
                object oMissing = System.Reflection.Missing.Value;
                Microsoft.Office.Interop.Excel.Application application = new Microsoft.Office.Interop.Excel.Application(); ;
                Microsoft.Office.Interop.Excel.Workbooks workbooks;
                //Microsoft.Office.Interop.Excel.Worksheet worksheet;
                Microsoft.Office.Interop.Excel.Workbook workbook;
                workbooks =  application.Workbooks;
                workbook = returnworkbook(strExcelFileName, workbooks); 
                //worksheet = (Worksheet)workbook.Sheets[1];
    
                for (int sheetint = 1; sheetint < 2; sheetint++)// DateTime.Now.Day Convert.ToDateTime(TextBox4.Text.Trim()).Day;// myBook.Worksheets.Count;//能得到sheet的数量
                {
                    Worksheet mySheet = (Worksheet)workbook.Worksheets[sheetint];
                    int rowsint = mySheet.UsedRange.Cells.Rows.Count; //得到行数
                    int columnsint = mySheet.UsedRange.Cells.Columns.Count;//得到列数
                    if (sheetint == 1)
                    {
                        for (int i = 1; i <= columnsint; i++)
                        {
                            dt.Columns.Add("F" + i.ToString(), System.Type.GetType("System.String"));
                        }
                    }
                    for (int i = 2; i <= rowsint; i++) //第一行为标题,不读取
                    {
                        myRow = dt.NewRow();
                        for (int j = 1; j <= columnsint; j++)
                        {
    
                            Range r = (Range)mySheet.Cells[i, j];
                            string strValue = r.Text.ToString();
    
    
                            string columnname = "F" + j.ToString();
                            myRow[columnname] = (strValue.Length == 0 || strValue.Contains("#")) ? " " : strValue;
                        }
                        try
                        {
                            dt.Rows.Add(myRow);
                        }
                        catch { }
                    }
                }
                workbook.Close(oMissing, oMissing, oMissing);
                workbooks.Close();
                application.Quit();
    
                return dt;
            }
    
            private Workbook returnworkbook(string filename, Workbooks works)  //这里是打一开一个工作表
            {
                Microsoft.Office.Interop.Excel.Workbook wk = works.Open(
                 filename, Type.Missing, Type.Missing,
                         Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                        Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                         Type.Missing, Type.Missing);
                return wk;
            }
    
        }
  • 相关阅读:
    EF Code First一对一、一对多、多对多关联关系配置
    ASP.NET MVC 3.0 HTML辅助方法
    CSS常用命名
    ExtJS3.4.0系列:ExtJS下载使用
    在HTTP响应标题中隐藏ASP.NET MVC的版本
    ASP.NET MVC动作过滤器
    Sql Server系列:使用TransactSQL编程
    ExtJS3.4.0系列:Ext.Panel
    Sql Server系列:Select检索数据
    ASP.NET MVC资源文件多语言实现方式
  • 原文地址:https://www.cnblogs.com/kennyliu/p/3965227.html
Copyright © 2020-2023  润新知