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 --官網

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM