zoukankan      html  css  js  c++  java
  • (低配版 )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;
            }
    

      

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

  • 相关阅读:
    Jython:java调用python文件之第三方包路径问题
    待研究的技术第二版
    mysql主从数据库不同步的2种解决方法(转)
    mysql分表和表分区详解
    mysql-binlog日志恢复数据库
    mysql delete删除记录数据库空间不减少问题解决方法
    mySQL 增量备份方案(转)
    mysql 查看 删除 日志操作总结(包括单独和主从mysql)
    Memcache的部署和使用(转)
    Linux下memcache的安装和启动(转)
  • 原文地址:https://www.cnblogs.com/srx121201/p/8135596.html
Copyright © 2011-2022 走看看