Excel物件模型的一些使用心得(C#)
最近在做一個很小的專案,做Excel的匯出。用到了Excel 10.0 (使用者要求),對應的Office版本是2002(XP).在某篇文章中找到了一個操作Excel物件的基礎類,裡面的方法比較全了,我這裡只記錄我所做專案中用到的幾個特殊的用法。
Excel.Application myExcel;
Excel.Workbook myWorkBook;
- 單元格查詢功能,即實現Excel中的(Ctrl+F)功能。
Excel.Range newRange = range.Find(conditions, rangeAfter, Excel.XlFindLookIn.xlFormulas, Excel.XlLookAt.xlPart, Excel.XlSearchOrder.xlByRows, Excel.XlSearchDirection.xlNext, false, false, false);其中conditions為查詢的條件,rangeafter為從哪個單元格之後開始查詢。Find()方法返回型別也為Range。 - 插入空行,插入空列。
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->public void InsertRow(int startRow, int endRow)
{
Excel.Worksheet worksheet = (Excel.Worksheet)myExcel.ActiveSheet;//獲取當前工作表
Excel.Range range = (Excel.Range)worksheet.Rows[startRow.ToString() + ":" + endRow.ToString(),System.Type.Missing];
range.Insert(Excel.XlInsertShiftDirection.xlShiftDown, Type.Missing);
}
public void InsertColumn(int startColumn, int endColumn)
{
Excel.Worksheet worksheet = (Excel.Worksheet)myExcel.ActiveSheet;//獲取當前工作表
Excel.Range range = (Excel.Range)worksheet.Columns[Type.Missing, startColumn.ToString() + ":" + endColumn.ToString()];
range.Insert(Excel.XlInsertShiftDirection.xlShiftToRight, Type.Missing);
} - 向單元格新增批註。
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->///
/// 新增批註
///
/// 批註
/// 行
/// 列
///
public bool AddComent(object coment, int row, int column)
{
try
{
Excel.Range range = myExcel.get_Range(myExcel.Cells[row, column], myExcel.Cells[row, column]);
range.AddComment(coment);
return true;
}
catch
{
return false;
}
} - 設定行高。
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->///
/// 設定行高
///
/// 起始行
/// 結束行
/// 行高
public void SetRowHeight(int startRow, int endRow, int height)
{
//獲取當前正在使用的工作表
Excel.Worksheet worksheet = (Excel.Worksheet)myExcel.ActiveSheet;
Excel.Range range = (Excel.Range)worksheet.Rows[startRow.ToString() + ":" + endRow.ToString(), System.Type.Missing];
range.RowHeight = height;
} - 實現Copy格式功能,即格式刷功能。
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->newRange.PasteSpecial(Excel.XlPasteType.xlPasteFormats, Excel.XlPasteSpecialOperation.xlPasteSpecialOperationNone, false, false); - 在程式碼中對原先是合併的單元格使用上面的PasteSpecial方法後,可能會把原先合併的單元格拆分開,我在專案中解決的辦法是,在查詢的時候,把原先合併的單元格Range物件儲存到陣列中,然後PasteSpecial,在程式碼最後再對陣列中的單元格進行合併。
CellUnit
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->Excel.Range[] mergeDataRange = new Excel.Range[2048];//用於儲存原模板中單元格合併狀態的陣列
//查詢newRange
if((bool)newRange.MergeCells== true)
{
mergeDataRange[i] = newRange.MergeArea;
}
//對所有原來是合併的單元格進行重新合併
foreach (Excel.Range range1 in mergeDataRange)
{
if (range1 != null && range1.Count !=1)
{
range1.Merge(Type.Missing);
}
else
{
break;
}
} - 以上列出的功能很少,僅僅是為了給自己的工作做一下小結,回顧一下自己寫的程式碼,同時也期待各位朋友的指正和討論。另外,在做Office開發用到COM元件的時候,遇到不熟悉的功能,可以在Office中錄製巨集,把自己需要解決的問題用VBA記錄下來,然後檢視,對自己編寫程式碼會有很大啟發。
- 另外MSDN對Excel物件模型有個比較詳細的介紹:http://msdn.microsoft.com/zh-cn/library/aa168292(office.11,printer).aspx
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-464291/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- LuckySheet一款線上Excel使用心得Excel
- c#之word物件模型小記C#物件模型
- Qt 的一些心得QT
- SpringMVC thymeleaf 關於layout使用的一些心得SpringMVC
- 轉:LogMiner安裝和使用的一些心得
- 關於ListView控制元件使用時的一些心得View控制元件
- 使用QTP管理wap頁面物件心得小結QT物件
- 使用NSUserDefault儲存物件模型物件模型
- 關於MFC操作Excel的幾點心得Excel
- 關於maven的核心pom(專案物件模型)的一些理解Maven物件模型
- Gorm 的使用心得和一些常用擴充套件 (一)GoORM套件
- C# 使用Aspose.Cells 匯出ExcelC#Excel
- .NET c# Color物件的使用介紹(轉)C#物件
- 作為面試官的一些心得面試
- 關於最近面試的一些心得面試
- 使用Kotlin的一些心得體會以及部分語法解析:Kotlin
- C#中關於 object,dynamic 一點使用心得C#Object
- [C# 開發技巧系列]使用C#操作Word和Excel程式C#Excel
- .net core下對於Excel的一些操作及使用Excel
- C# 填充ExcelC#Excel
- C# 操作ExcelC#Excel
- C#操作ExcelC#Excel
- 對React setState的一些思考與心得React
- [譯] 關於 HTTP/3 的一些心得HTTP
- Laravel 開發 RESTful API 的一些心得LaravelRESTAPI
- 後端的一些經驗與心得後端
- Android 混合開發 的一些心得。Android
- 移動介面設計的一些心得
- VB程式設計的一些心得 (轉)程式設計
- C#使用開源操作庫MiniExcel操作ExcelC#Excel
- C# 操作Excel大全C#Excel
- C#匯入EXCELC#Excel
- c#中呼叫ExcelC#Excel
- 關於c#使用Npoi庫的一些隨筆C#
- C# 物件C#物件
- 談談一些學習心得
- C#對EXCEL的讀寫操作C#Excel
- 關於WiFi密碼破解的一些心得WiFi密碼