首页 > 编程语言 >Aspose.cell 常用封包

Aspose.cell 常用封包

时间:2023-06-04 10:14:44浏览次数:49  
标签:封包 string int List ExcelColumnAttribute cell ColumnIndex Aspose public

导出成List

    [AttributeUsage(AttributeTargets.Property, AllowMultiple = false)]
    public class ExcelColumnAttribute : Attribute
    {
        public ExcelColumnAttribute(int columnIndex)
        {
            ColumnIndex = columnIndex;
        }
        public ExcelColumnAttribute(string columnName)
        {
            ColumnName = columnName;
        }
        public int ColumnIndex { get; }
        public string? ColumnName { get; }
    }

        public static List<T> ExcelExportList<T>(string filePath, int sheetIndex)
        {
            List<T> dataList = new List<T>();
            Workbook workbook = new Workbook(filePath);
            Worksheet worksheet = workbook.Worksheets[sheetIndex];
            PropertyInfo[] properties = typeof(T).GetProperties();
            for (int rowIndex = 1; rowIndex <= worksheet.Cells.MaxDataRow; rowIndex++)
            {
                T myData = (T)Activator.CreateInstance(typeof(T))!;
                foreach (var property in properties)
                {
                    var attributes = property.GetCustomAttributes(typeof(ExcelColumnAttribute), false);
                    if (attributes is [ExcelColumnAttribute])
                    {
                        var at = ((ExcelColumnAttribute)attributes[0]);
                        if (string.IsNullOrEmpty(at.ColumnName)||string.IsNullOrWhiteSpace(at.ColumnName))
                        {
                            int columnIndex = at.ColumnIndex;
                            string value = worksheet.Cells[rowIndex, columnIndex].StringValue;
                            property.SetValue(myData, Convert.ChangeType(value, property.PropertyType), null);
                        }
                        else
                        {
                            string columnName = at.ColumnName;
                            string value = worksheet.Cells[$"{columnName}{rowIndex+1}"].StringValue;
                            property.SetValue(myData, Convert.ChangeType(value, property.PropertyType), null);
                        }
                       
                    }
                }
                dataList.Add(myData);
            }
            return dataList;
        }

标签:封包,string,int,List,ExcelColumnAttribute,cell,ColumnIndex,Aspose,public
From: https://www.cnblogs.com/yzpopulation/p/17416935.html

相关文章

  • 1821D - Black Cells(暴力贪心枚举)
    大意加思路:相当于有一个绳子,其中有n段可以上色,如果要给一段上色代价增加2,没向前走一步代价加一,可以看出代价最多可以去对掉长度为一的段落,因为最后要给x个点上色代价做少为x,而前面的段落给1个点上色代价最少为2,另外要考虑最后一段可能没有完全上色。点击查看代码#include<bits/......
  • 发送IP封包到高层协议
    intip_local_deliver(structsk_buff*skb){/**ReassembleIPfragments.*/structnet*net=dev_net(skb->dev);if(ip_is_fragment(ip_hdr(skb))){if(ip_defrag(net,skb,IP_DEFRAG_LOCAL_DELIVER))return0;}returnNF_HOOK......
  • the way to make jupyter output cell has a dark background in vscode
    theissuetobefixedAsshowninthepicture,jupyteroutputcellhasabrightbackground,evenit'sasktousedarkbackground.thewaytogoimportmatplotlib.pyplotaspltimportnumpyasnpfromIPython.displayimportHTML####################......
  • iOS8 Self Sizing UITableView Cells iOS8Tableview Cells 自适应高度
    UITableViewUITableViewTheoldwayUITableView inheritsfrom UIScrollView).Iftherowswere allequalthiswas justasimpleoperation.Butiftheywere different,ithad toknow theheightsofalltherowsandsumthem.Itaskedusfortheheightofeve......
  • [USACO08JAN]Cell Phone Network G
    题意:给出由n个点和(n-1)条边构成的树,每个点可以覆盖每个相邻点,求把树上所有点覆盖完成至少需要挑出多少点来做覆盖操作思路:先明确用树形dp来做解答,用dp[i][]来表示覆盖对应点和其下方所有节点的最小花费对于要覆盖的每个点,我们可以有三种选择:1.自己覆盖自己:这时字节......
  • APP自动化--封包
    常用的导包数据,可以直接封装起来,以便后期使用,可以在project添加名为Package的python软件包,如常用下面的包和APP自动远程的链接信息,可以进行封装fromappium.webdriverimportRemote#导入远程包fromappium.webdriver.common.appiumbyimportAppiumByasBy#引用app......
  • UITableView 系列五 :自定义UITableViewCell (实例)
    有时候我们需要自己定义UITableViewCell的风格,其实就是向行中添加子视图。添加子视图的方法主要有两种:使用代码以及从.xib文件加载。当然后一种方法比较直观。我们这次要自定义一个Cell,使得它像QQ好友列表的一行一样:左边是一张图片,图片的右边是三行标签:当然,我们不会搞得这么复杂,只......
  • getPhysicalNumberOfCells读取excel表格数据,清除空行后代码仍然识别空行,(已解决)
     表格只有几十行数据,但是getPhysicalNumberOfCells读取时还有800多行,原因在于之前把表格数据拓展到了800行,清除数据时,表格的样式为更改,可以尝试使用格式刷复制空行格式刷到错误空行上但是我试了没有用,反而还多了几十行,然后尝试用代码判断空行,只有格式没有数据的空行全部删除,......
  • tableview里面数据cell的个数居然不能改了(section footer )
    tableview里面数据cell的个数居然不能改了-----------数据源,代理等也设置好了。。。但是就是该表不了,心情有点焦躁啊。后来发现我xib的tableview里面多了一个sectionfooter像标尺一样的可以伸缩的,原来是它挡着了。O(∩_∩)O~,对tableview还是不是很熟悉呀。......
  • 【Introductory Biology】Lecture 12 - Chemical Genetics 1 - Cell Division & Segre
    文章目录SlidesRefSlidescentraldogma中心法则…Andwe’regoingtostarttalkingabouthowinformationflowsbetweencells,sofromaparentcelltoitsdaughtercells.Andwe’realsogonnatalkabouthowinformationflowsfromgenerationtothenext.Andth......