Excel文件数据保存到SQL中

1.获取DataTable

        /// <summary>
        /// 查询Excel文件中的数据
        /// </summary>
        /// <param name="strPath">文件路径</param>
        /// <param name="sheetName">工作表名</param>
        /// <returns>DataTable</returns>
        public DataTable getExcel(string strPath,string sheetName)
        {
            string mystring = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source = ‘" + strPath + "‘;Extended Properties=‘Excel 8.0;HDR=Yes;IMEX=1;‘";        //连接串, HDR=yes  表示excel第一行是标题行,反之表示第一行不是标题行
            OleDbConnection cnnxls = new OleDbConnection(mystring);
            cnnxls.Open();
            OleDbDataAdapter myDa = new OleDbDataAdapter("select * from [" + sheetName + "]", cnnxls);//查询工作表中的数据
            DataSet ds = new DataSet();
            myDa.Fill(ds, "[" + sheetName + "]");
            cnnxls.Close();
            DataTable dt = ds.Tables[0];
            return dt;
        }

2.点击按钮函数,将数据存入数据库

        /// <summary>
        /// 把Excel中的数据保存到sql数据库中
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnSave_Click(object sender, EventArgs e)
        {
            if (LaValue.Text.Length >0)
            {
                Helper.ExcelHelper eh = new Helper.ExcelHelper();//公共方法类对象,封装Excel操作的方法
                DataTable dt = eh.getExcel(LaValue.Text, DropDownList1.Text.ToString());//得到Datatable
                DataRow[] dr = dt.Select();//得到
                int rowsnum = dt.Rows.Count;//表中数据行数
                List<String> lstMsg = new List<string>();//保存失败信息
                if (rowsnum == 0)
                {
                    Page.ClientScript.RegisterStartupScript(this.GetType(), "a", "alert(‘Excel表为空表,无数据!‘);", true);
                }

                else
                {
                    String error = "";
                    for (int i = 0; i < dr.Length; i++)//循环插入数据
                    {
                        // excel列名不能变
                        string C_OraName = dr[i]["CompanyName"].ToString();
                        string C_Town = dr[i]["Town"].ToString();
                        string C_Trding = dr[i]["Trading"].ToString();
                        string C_PostCode = dr[i]["PostCode"].ToString();
                        string C_Phone = dr[i]["Phone"].ToString();

                        if (String.IsNullOrEmpty(C_OraName))
                        {
                            error += "公司名不能为空 ";
                        }
                        if (error.Equals(""))   //
                        {
                            Model.Model_Companey company_model = new Model.Model_Companey();
                            BLL.BLL_Companey company_bll = new BLL.BLL_Companey();
                            company_model.C_OraName = C_OraName;
                            company_model.C_Town = C_Town;
                            company_model.C_Trding = C_Trding;
                            company_model.C_Postcode = C_PostCode;
                            company_model.C_Phone = C_Phone;
                            // 公司名之前未出现过
                            if (Helper.SQLHelper.SqlContains(C_OraName, "Companey", "C_OraName") == false)
                            {
                                company_bll.Add(company_model);//添加数据
                            }
                            else
                            {
                                error = C_OraName + "已存在";
                                lstMsg.Add("未导入成功," + "原因:" + error + "。");//保存错误信息
                                error = "";
                            }
                        }
                        else
                        {
                        }
                    }
                    this.txtMessageList.Items.Add("导入完成。");
                    if (null != lstMsg)
                    {
                        this.txtMessageList.Items.Add("共有" + lstMsg.Count() + "条记录未成功。<br /><br />");
                        foreach (string s in lstMsg)
                        {
                            this.txtMessageList.Items.Add(s);
                        }
                    }
                }
            }
        }

3.将工作表名放入DropDownList控件中以作选择

        /// <summary>
        /// 把工作表名绑定到DropDownList控件中
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnup_Click(object sender, EventArgs e)
        {
            if (FileUpload1.HasFile)
            {
                string ext = System.IO.Path.GetExtension(FileUpload1.FileName);//获取文件后缀
                if (ext.ToLower() != ".xls" && ext.ToLower() != ".xlsx")
                {
                    Page.ClientScript.RegisterStartupScript(this.GetType(), "a", "alert(‘请选择一个Excel文件!‘);", true);
                    return;
                }
                HttpFileCollection files = HttpContext.Current.Request.Files;//获取页面上所有的FileUpload控件
                string tmp = files[0].FileName;
                string savePath = "e:/test/" + DateTime.Now.ToString("yymmdd") + ".xls";//保存路径
                LaValue.Text = savePath; //保存路径到一个不可见的Label控件中
                FileUpload1.SaveAs(savePath);//保存文件
                DropdownListBind(savePath);//绑定DropDownList
            }
        } 

4.绑定DropDownList函数

        /// <summary>
        /// 绑定DropDownList
        /// </summary>
        /// <param name="savePath">路径</param>
        protected void DropdownListBind(string savePath)
        {
            string mystring = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source = ‘" + savePath + "‘;Extended Properties=‘Excel 8.0;HDR=Yes;IMEX=1;‘";//连接Excel串
            OleDbConnection cnnxls = new OleDbConnection(mystring);//创建连接
            cnnxls.Open();
            DataSet ds = new DataSet();
            DataTable dt = cnnxls.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });//获取工作表名
            DropDownList1.DataSource = dt;
            foreach (DataRow dr in dt.Rows)
            {
                DropDownList1.Items.Add((String)dr["TABLE_NAME"]);//向控件中添加工作表名
            }
            cnnxls.Close();
        }
时间: 2024-10-27 00:17:55

Excel文件数据保存到SQL中的相关文章

1.scrapy爬取的数据保存到es中

先建立es的mapping,也就是建立在es中建立一个空的Index,代码如下:执行后就会在es建lagou 这个index. from datetime import datetime from elasticsearch_dsl import DocType, Date, Nested, Boolean, \ analyzer, InnerDoc, Completion, Keyword, Text, Integer from elasticsearch_dsl.connections im

PHP操作:将数据库中的数据保存到Word中。

1.首先定义了一个word类 <?php class word { function start() { ob_start(); ob_start — 打开输出控制缓冲 } function save($path) { $data = ob_get_contents(); ob_get_contents — 返回输出缓冲区的内容 ob_end_clean(); ob_end_clean — 清空(擦除)缓冲区并关闭输出缓冲 $this->wirtetoword($path,$data); }

将 excel文件数据导入MySQL数据库中

第一步:先将Excel文件另存为文本文件(制表符分割) 第二步:将生成的txt文件另存,并修改编码格式utf8; 第三步:将文件放到指定位置,或自己想要的位置: G:\city.txt 第四步:避免创建数据库及表出现中文乱码和查看编码方法: 1.创建数据库的时候:CREATE DATABASE `test` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'; 查询字符编码: show variables like'character%'; 将数据库修改

在scrapy中将数据保存到mongodb中

利用item pipeline可以实现将数据存入数据库的操作,可以创建一个关于数据库的item pipeline 需要在类属性中定义两个常量 DB_URL:数据库的URL地址 DB_NAME:数据库的名字 在Spider爬取的整个过程中,数据库的连接和关闭操作只需要进行一次就可以,应该在开始处理之前就要连接数据库,并在处理完所有数据之后就关闭数据库.所以需要在open_spider和close_spider中定义数据库的连接和关闭操作 在process_item中实现MongoDB的写入操作,使

matlab 读多个文件夹(有名字规律)中的文件名字保存到txt中

save_file_name='C:\Users\cong\Desktop\研一实战\项目\图像中时间数字识别\OCR\result6\'; for j=0:1:9 image_path=strcat('C:\Users\cong\Desktop\研一实战\项目\图像中时间数字识别\trainingSample\num',num2str(j),'\'); file=dir(image_path);%%%%%% txtname=strcat('result',num2str(j),'.txt');

将添加的表格框中数据保存到_data中,

//找到行数将修改的数据传到_data的FISH_NAME中$('table').on('click','.drop-item',function(){ var _data = self.FishConfigList(); console.log(_data); var liText = $(this).text(); var indexi = $(this).closest('tr').index(); _data[indexi].FISH_NAME =liText; return _data

Sql数据保存到Excel文件中

public string ExportExcel( DataSet ds,string saveFileName) { try { if (ds == null) return "数据库为空"; bool fileSaved = false; Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); if (xlApp == null) {

将爬取的数据保存到Excel表格

第一步.导入模块 import xlwt # 导入写入excel需要的包第二步.定义函数,将爬取好的数据保存到excel文件中,下面以保存python的关键词为例,介绍详细流程. def write_to_excel(filename, lst): # 为防止写入失败,捕获异常 try: # 1 创建一个workbook,相当于创建excel文件 work_book = xlwt.Workbook(encoding='utf-8') # 2 创建一个sheet表单 sheet = work_bo

非常标准的将数据保存到file并从file中读取数据。

字符流:Reader(读) Writer(写) 字节流:InputStream(读数据)  OutputStream(写数据) 1,字节流 InputStream(读),OutputStream(写) 2,字符流 Reader(读),Writer(写) 结论:只要是处理纯文本数据,就要优先考虑使用字符流,除此之外都用字节流. 向文件中写入内容 try { FileOutputStream fos = openFileOutput(INTERNAL_FILENAME , MODE_APPEND);