C#连接Excel数据处理

C#读取Excel数据

代码片

using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.OleDb;//excel表数据操作
using System.Data;
using System.Globalization;

namespace ConsoleApp15
{
    class Program
    {
        static void Main(string[] args)
        {
            string filePath = "E:/1.xls";
            var OleDsExcel=Excel(filePath);
            DataTable tb1 = new DataTable();
            if (OleDsExcel.Tables.Count > 0) tb1 = OleDsExcel.Tables[0];
            int rowsCount = tb1.Rows.Count;
            int colsCount = tb1.Columns.Count;
            Dictionary<string, int> dic = new Dictionary<string, int>();//创建字典
            string[,] Arr = new string[rowsCount, colsCount];//创建二维数组
            
            int s=0;
            int num = 0;
            int w = -1;
            for (int i = 0; i < rowsCount; i++)
            {
                string st = tb1.Rows[i][2].ToString().Trim();
                //toupper() 函数用来将小写字母转换为大写字母,trim()的作用就是删除字符串首部和尾部的空格
                if (dic.ContainsKey(st)) w = dic[st];else w =-1;//ContainsKey方法可以用来判断某个键值是否存在
                if (w == -1)
                {
                    for (int j = 0; j < colsCount; j++)
                    {
                        try
                        {
                            //Console.WriteLine(tb1.Rows[i][j].ToString().Trim());
                            Arr[s, j] = tb1.Rows[i][j].ToString().Trim();
                        }
                        catch (Exception err)
                        {
                            Console.WriteLine(err);
                        }
                    }
                    dic[st] = s;
                    s++;
                }
                else
                {
                    num=int.Parse(Arr[w, 8]) + int.Parse(tb1.Rows[i][8].ToString().Trim());
                    Arr[w, 8] = num.ToString();
                }
            }
            for (int ii = 0; ii < Arr.GetLength(0); ii++)
            {
                if (Arr[ii,2]!=null)
                {
                    Console.WriteLine("物料编号={0}总数量={1}",Arr[ii,2],Arr[ii,8]);
                } 
            }
        }


        public static DataSet Excel(string filePath)
        {
            try
            {
                string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended Properties=Excel 12.0;";
                OleDbConnection OleConn = new OleDbConnection(strConn);
                OleConn.Open();
                string sql = "select * from [Sheet1$]";

                OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);
                DataSet OleDsExcel = new DataSet();
                OleDaExcel.Fill(OleDsExcel, "Sheet1");
                OleConn.Close();
                return OleDsExcel;
            }
            catch (Exception err)
            {
                Console.WriteLine("数据绑定Excel失败!失败原因:" + err.Message, "提示信息");       
                return null;
            }
        }
    }
}
   
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值