(低配版 )Excel导入功能

我要做的是导入并读取。

要引用Aspose.Cells.dll

引用 using Aspose.Cells;

 

  (视图。) (要导入的文件)

 

 

代码一(按钮事件):

 private void button2_Click(object sender, EventArgs e)  //按钮事件
        {
            OpenFileDialog frm = new OpenFileDialog();
            frm.Filter = "Excel文件(*.xls,xlsx)|*.xls;*.xlsx";
            if (frm.ShowDialog() == DialogResult.OK)
            {
                string excelName = frm.FileName;
                Workbook excel = new Workbook(excelName);     //拿到url
                List<EntityModel> importyString = GetImportExcelRoute(excel);   //读取文件
            }


        }

  

代码二(读取表格内容)

 

 //循环遍历获取excel的中每行每列的值  
        public List<EntityModel> GetImportExcelRoute(Workbook excel)
        {
            int icount = excel.Worksheets.Count;  //总条数
            List<EntityModel> routList = new List<EntityModel>();  //声明一个实体(自己写,不配图了),装获取的数据

            for (int i = 0; i < icount; i++)
            {
                Worksheet sheet = excel.Worksheets[i];
                Cells cells = sheet.Cells;
                int rowcount = cells.MaxRow;  //行数
                int columncount = cells.MaxColumn;  //列数

                if (rowcount > 0 && columncount > 0)
                {
                    TableName = cells[0, 0].StringValue.Trim();  //列名  (因为我导入的文件是固定格式的。所以取固定值可以拿到列名)

                    for (int e = 2; e < rowcount; e++)           //循环行 (因为表格,前两列,是表名和列名。所以计数e从第二行开始循环)
                    {
                        EntityModel entityModel = new EntityModel();
                        for (int c = 0; c <= 4; c++)            //循环4列(也是因为表格固定,才循环c列为4列)
                        {
                            switch (c)
                            {
                                case 0:
                                    entityModel.Name = cells[e, c].StringValue.Trim(); break; //获取姓名
                                case 1:
                                    entityModel.Type = cells[e, c].StringValue.Trim(); break; //获取类型
                                case 2:
                                    entityModel.IsEmpty = cells[e, c].StringValue.Trim(); break; //获取是否为空 
                                case 3:
                                    entityModel.Instructions = cells[e, c].StringValue.Trim(); break;//获取说明

                            }
                        }
                        routList.Add(entityModel);  //添加
                    }
                }
            }
            return routList;
        }

  

 注:因为没有做其他判断,所以表格合并能不能求出值,还有表格原来自带颜色能不能用 。都没测试过...

 

posted on 2017-12-28 14:39  虞姬菜菜  阅读(228)  评论(0编辑  收藏  举报

导航