zoukankan      html  css  js  c++  java
  • aspose.Cells使用方法

    1、创建Workbook,aspose提供了5个重载用于创建一个工作簿,通过Worksheets 获取到当前sheet页

    Workbook中Worksheets属性可以通过sheet的下标和sheet的名称获分别取到将要操作的Worksheet对象 ,例如

     Workbook work = new Workbook(@"路径");
     Worksheet sheet = work.Worksheets["New Worksheet1"];
     //Worksheet sheet = work.Worksheets[0];//根据下标

      wb.Worksheets.Clear(); 删除当前工作表 
      wb.Worksheets.Add("New Worksheet1")  新增一个工作表

    2、操作单元格

     Cell cell = sheet.Cells["A1"];
     //Cell cell =sheet.Cells[0, 0];
     cell.PutValue("单元格赋值"); //必须用PutValue方法赋值 
     cell.Style.ForegroundColor = Color.Yellow;//前景颜色
     cell.Style.Pattern = BackgroundType.Solid;//设置背景样式实线
     cell.Style.Font.Size = 10;//字体大小
     cell.Style.Font.Color = Color.Blue;//背景颜色
     cell.Style.Custom = "ddd, dd mmmm 'yy";//自定义格式: 
     cell.Style.Rotation = 90; //旋转字体: 

      string value = cell.StringValue;取值

      sheet.Cells[0, 0] 参数可以是对应的x、y轴坐标,也可以是A1、A2这种字符串

    3、设置单元格计算公式

    work.Cells["A1"].PutValue(1);
    work.Cells["B1"].PutValue(1);
    work.Cells["C1"].Formula = "SUM(A1:B1)";
    work.CalculateFormula(true);

    当需要给单元格做就计算公式时,使用formula设置指定单元格的公式,在保存之前必须调用CalculateFormula 方法,默认调用方法就可以,传入true参数忽略计算错误,

    支持自定义函数,new CalculationOptions()对象出来自己做设置

    4、插入图片

    sheet.Pictures.Add(1, 0, "图片地址");

    add方法规定了图片的插入必须传入坐标,图片可以是流或者地址

    5、保存

    work.Save("地址");
    Stream stream= work.SaveToStream();

    上面方法是aspose的原生导出方法,没破解的aspose.cells 在导出EXCEL,最后会多加一个 sheet 然后写上 Evaluation Only.......

     可以通过NPOI来删除掉试用的标记sheet页,将aspose的workbook转为流,使用NPOI 读取流,通过xwb.removeSheetAt(xwb.NumberOfSheets() - 1);方法删除掉最后一个sheet,绕过没有授权的试用提醒。

     IWorkbook  workbook = new XSSFWorkbook(execlStream);
    workbook.RemoveSheetAt(workbook.NumberOfSheets - 1);

    6、坐标转换

            /// <summary>
            /// 将Excel坐标转换成10进制坐标, Item1 Row ,Item2 Column
            /// </summary>
            /// <param name="strCoordinate"></param>
            /// <returns></returns>
            private Tuple<int, int> TransferCoordinate(string strCoordinate)
            {
                int rowNumber = 0, columnNumber = 0;
                string strRowNum, strColumnNum;
                //获得换行数
                MatchCollection collection = Regex.Matches(strCoordinate, @"d+");
                strRowNum = collection[0].ToString();
                rowNumber = int.Parse(strRowNum);
                //获得列数
                collection = Regex.Matches(strCoordinate, @"[A-Z]{1,3}");
                strColumnNum = collection[0].ToString();
                columnNumber = CalColumnNum(strColumnNum);
                return new Tuple<int, int>(rowNumber - 1, columnNumber - 1); ;
            }
    
            /// <summary>
            /// 获得Excel 列坐标
            /// </summary>
            /// <param name="strCol"></param>
            /// <returns></returns>
            private int CalColumnNum(string strCol)
            {
                int num = 0, charNum;
                var charArr = strCol.ToUpper().Trim().ToCharArray();
                for (int i = charArr.Length - 1, j = 0; i >= 0; i--, j++)
                {
                    charNum = (int)charArr[i] - 64;
                    num += (int)Math.Pow(26, j) * charNum;
                }
    
                return num;
            }

    参考资料: 

    http://blog.csdn.net/peng790/article/details/53483597

    http://blog.csdn.net/zhangyatoua/article/details/52315666

    http://www.cnblogs.com/ysjBoke/p/4832872.html   -- aspose中文的手册

    http://www.aspose.com/docs/display/cellsnet/Home --官网

  • 相关阅读:
    无废话网页重构系列——(7)样式、结构、行为分离分割
    无废话网页重构系列——(1)为什么要写这个系列
    无废话网页重构系列——(2)来套Web重构装备
    批处理系列(1) 基础
    无废话网页重构系列——(6)语义化
    无废话网页重构系列——(4)切图与标注
    Media Queries 媒体查询常见设备断点
    无废话网页重构系列——(9)栅格结构
    无废话网页重构系列——(5)搭建工程目录
    初识python之python基本语法(1)
  • 原文地址:https://www.cnblogs.com/li-lun/p/7724551.html
Copyright © 2011-2022 走看看