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

      

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

  • 相关阅读:
    用户验证之自定义身份验证
    再谈CLR:查看程序集的依赖关系
    关于私钥加密、公钥加密、签名在生活中的场景
    MOSS 2010服务器对象模型(Object Model)
    用户身份验证之Windows验证
    由object不能比较引发的问题
    再谈CLR: .NET 4.0新功能:Mscoree.dll + Mscoreei.dll=更少的Reboot (上)
    再谈CLR:事件定义
    WPF:如何为程序添加splashScreen?
    通过反射得到类型的所有成员
  • 原文地址:https://www.cnblogs.com/srx121201/p/8135596.html
Copyright © 2011-2022 走看看