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;
            }
    

      

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

  • 相关阅读:
    Adobe Flash Player因过期而遭到阻止”的内幕起因和解决办法
    SQL中isnull,nullif,coalesce的用法
    sql server全局变量
    关于分组后字段拼接的问题
    查询某个分组中多行字段值的拼接字串的方法--access
    分组统计(平均值计算)
    excel,sql server,access数据之间相互导入导出
    数据查询和管理
    我为什么学习Windows编程
    zStack学习笔记(原创,绝对不是抄的……)
  • 原文地址:https://www.cnblogs.com/srx121201/p/8135596.html
Copyright © 2011-2022 走看看