c#读取excel文件

private void insertreadexcel(string id, string filepath)
        {

            try
            {
                #region 定义属性名称
                string ComGUID = string.Empty;
                string KeyWords = string.Empty;
                string Data = string.Empty;
                string ShipperName = string.Empty;
                string ShipperAddress = string.Empty;
                string ConsigneeName = string.Empty;
                string ConsigneeAddress = string.Empty;
                int Weight = 0;
                string WeightUnit = string.Empty;
                int WeightInKG = 0;
                int Quantity = 0;
                string QuantityUnit = string.Empty;
                string Measure = string.Empty;
                string MeasureUnit = string.Empty;
                int PieceCount = 0;
                string Details = string.Empty;
                string PlaceOfReceipt = string.Empty;
                string ForeignPortLading = string.Empty;
                string USAPortUnlading = string.Empty;
                string USADestinationPort = string.Empty;
                string CarrierName = string.Empty;
                string VesselName = string.Empty;
                string VoyageNumber = string.Empty;
                #endregion
                ComGUID = id;
                KeyWords = "";
                #region   操作excel
                OleDbConnection conn;
                OleDbDataAdapter ds;
                string sql = string.Empty;
                string strConn = "Provider=\"Microsoft.Jet.OLEDB.4.0\";Data Source=\"" + filepath + "\";Extended Properties=\"Excel 8.0;IMEX=1\"";
                conn = new OleDbConnection(strConn);
                try
                {
                    conn.Open();
                }
                catch (Exception ex)
                {
                    Tools.Log.WriteLog("excel连接失败!", ex.ToString());
                    t.Abort();
                }
                DataTable dtexcel = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
                if (dtexcel.Rows.Count < 0)
                {
                    this.LB.BeginInvoke(new showMsgDelegate(showMsg), "excel表里面没有数据!");
                    return;
                }
                string TableTile = string.Empty;
                try
                {
                    for (int t = 0; t < dtexcel.Rows.Count; t++)
                    {
                        if (dtexcel.Rows[t]["TABLE_NAME"].ToString() == "bullet$")
                        {
                            TableTile = dtexcel.Rows[t]["TABLE_NAME"].ToString();
                            break;
                        }
                        continue;
                    }
                }
                catch (Exception ex)
                {
                    Tools.Log.WriteLog("获取表数据时出错。", ex.ToString());
                    return;
                }
                sql = "select * from [" + TableTile + "A:U]";
                ds = new OleDbDataAdapter(sql, strConn);
                DataTable dtconn = new DataTable();
                dtconn.TableName = "productexcel";
                ds.Fill(dtconn);

                #region  产品出口信息
                if (dtconn != null && dtconn.Rows.Count > 0)
                {
                    foreach (DataRow dr in dtconn.Rows)
                    {
                        Data = dr["Date"].ToString();
                        ShipperName = dr["Shipper Name"].ToString().Replace("'", "'");
                        ShipperAddress = dr["Shipper Address"].ToString().Replace("'", "'");
                        ConsigneeName = dr["Consignee Name"].ToString().Replace("'", "'");
                        ConsigneeAddress = dr["Consignee Address"].ToString().Replace("'", "'");
                        if (!string.IsNullOrEmpty(dr["Weight"].ToString()))
                        {
                            Weight = int.Parse(dr["Weight"].ToString());
                        }
                        WeightUnit = dr["Weight Unit"].ToString();
                        if (!string.IsNullOrEmpty(dr["Weight in KG"].ToString()))
                        {
                            WeightInKG = int.Parse(dr["Weight in KG"].ToString());
                        }
                        if (!string.IsNullOrEmpty(dr["Quantity"].ToString()))
                            Quantity = int.Parse(dr["Quantity"].ToString());
                        QuantityUnit = dr["Quantity Unit"].ToString().Replace("'", "'");
                        Measure = dr["Measure"].ToString().Replace("'", "'");
                        MeasureUnit = dr["Measure Unit"].ToString().Replace("'", "'");
                        if (!string.IsNullOrEmpty(dr["Piececount"].ToString()))
                            PieceCount = int.Parse(dr["Piececount"].ToString());
                        Details = dr["Details"].ToString().Replace("'", "'");
                        PlaceOfReceipt = dr["Place of Receipt"].ToString().Replace("'", "'");
                        ForeignPortLading = dr["Foreign Port of Lading"].ToString().Replace("'", "'");
                        USAPortUnlading = dr["U#S# Port of Unlading"].ToString().Replace("'", "'");
                        USADestinationPort = dr["U#S# Destination Port"].ToString().Replace("'", "'");
                        CarrierName = dr["Carrier Name"].ToString().Replace("'", "'");
                        VesselName = dr["Vessel Name"].ToString().Replace("'", "'");
                        VoyageNumber = dr["Voyage Number"].ToString().Replace("'", "'");

                        string addsql = string.Format(@"INSERT INTO [AutopartooFactory].[dbo].[CustomsData]
                                                                       ([ComGUID],[KeyWords],[Data] ,[ShipperName],[ShipperAddress],[ConsigneeName],[ConsigneeAddress],[Weight] ,[WeightUnit],[WeightInKG],[Quantity],[QuantityUnit],[Measure],[MeasureUnit],[PieceCount] ,[Details] ,[PlaceOfReceipt],[ForeignPortLading] ,[USAPortUnlading],[USADestinationPort],[CarrierName] ,[VesselName] ,[VoyageNumber])
                                                                 VALUES('{0}','{1}' ,'{2}','{3}' ,'{4}' ,'{5}' ,'{6}' ,{7} ,'{8}' ,{9},{10} ,'{11}','{12}','{13}' ,{14},'{15}' ,'{16}','{17}' ,'{18}' ,'{19}' ,'{20}','{21}','{22}')",
                                                                     ComGUID, KeyWords, Data, ShipperName, ShipperAddress, ConsigneeName, ConsigneeAddress, Weight, WeightUnit, WeightInKG, Quantity, QuantityUnit, Measure, MeasureUnit, PieceCount, Details, PlaceOfReceipt, ForeignPortLading, USAPortUnlading, USADestinationPort, CarrierName, VesselName, VoyageNumber);
                        int b = DBUtility.SqlHelper.ExecuteNonQuery(Conn, CommandType.Text, addsql);
                        if (b > 0)
                        {
                            this.LB.BeginInvoke(new showMsgDelegate(showMsg), "Excel数据分析成功!Excel:" + ComGUID + "_" + KeyWords);
                        }
                        else
                        {
                            this.LB.BeginInvoke(new showMsgDelegate(showMsg), "Excel数据分析失败!Excel:" + ComGUID + "_" + KeyWords);
                        }

                    }
                }
                #endregion
                #endregion
            }
            catch (Exception ex)
            {
                this.LB.BeginInvoke(new showMsgDelegate(showMsg), "Excel数据分析失败!Excel:" + filepath);
                Tools.Log.WriteLog("Excel数据分析失败!Excel:" + filepath, ex.Message);
                t.Abort();
            }
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值