C# 读取EXCEL公式

  System.Data.DataTable dz = new System.Data.DataTable();
            dz.Columns.Add("item_no", typeof(string));
            dz.Columns.Add("description", typeof(string));
            dz.Columns.Add("formular", typeof(string));
            Microsoft.Office.Interop.Excel.Application myExcel = new Microsoft.Office.Interop.Excel.ApplicationClass();
            Workbook myWorkbook = null;
            Worksheet mySheet = null;
            string excelFileName = @"D:\dll\loss\塑胶金属夹.xls";
            // 打开Excel文件        
            myWorkbook = myExcel.Workbooks.Open(excelFileName, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
            // 获取第一个sheet 
            mySheet = (Worksheet)myWorkbook.Sheets[1];
            for (int i = 9; i < 78; i++)
            {
                Microsoft.Office.Interop.Excel.Range rg = mySheet.get_Range("C"+i.ToString(), "C"+i.ToString());
                dz.Rows.Add(1);
                dz.Rows[i-9]["item_no"] = rg.Value2.ToString();
                rg = mySheet.get_Range("D"+i.ToString(), "D"+i.ToString());
                dz.Rows[i-9]["description"]= rg.Value2.ToString();
                rg = mySheet.get_Range("AM" + i.ToString(), "AM" + i.ToString());
                if (rg.Formula.ToString().IndexOf("*",0)>0)
                {
                dz.Rows[i-9]["formular"] = rg.Formula.ToString().Substring(rg.Formula.ToString().IndexOf("*",0)+1,rg.Formula.ToString().Length-rg.Formula.ToString().IndexOf("*",0)-1);
                if (dz.Rows[i - 9]["formular"].ToString().IndexOf(",", 0) > 0)
                {
                    dz.Rows[i - 9]["formular"] = dz.Rows[i - 9]["formular"].ToString().Substring(0, dz.Rows[i - 9]["formular"].ToString().IndexOf(",", 0));
                }
                }
                else
                {
                    if(rg.Formula.ToString().Length>0)
                    {
                        dz.Rows[i - 9]["formular"] = 1;
                    }
                    else
                    {
                    dz.Rows[i - 9]["formular"] = rg.Formula.ToString();
                    }
                }


            }
            dz.DefaultView.Sort = "item_no";
            _flexCategories.DataSource = dz;
            _flexCategories.SaveExcel(@"D:\dll\损耗\1.xls");
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值