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