C# 對Excel的操作
學習自: 教練輔導
C# 對Excel的讀取操作
我們需要額外添加引用:
- References
- 搜索Excel
- 這樣我們的基礎就添加完成了。
- 並且在using 中添加:
using Excel = Mirosoft.Office.Interop.Excel;
這邊我們使用我們的控制台程序來對他進行操作。
我們先來看一下我們的完整代碼。
//讀取
Excel.Application excel_import = new Excel.Application();
Excel.Workbook book_import = excel_import.Workbooks.Open(FilePath + "/Data.xlsx");
Excel.Worksheet sheet_import = book_import.Sheets[1];
object[,] data = new object[sheet_import.UsedRange.Cells.Rows.Count, sheet_import.UsedRange.Cells.Columns.Count];
int import_row_count = sheet_import.UsedRange.Cells.Rows.Count;
int import_column_count = sheet_import.UsedRange.Cells.Columns.Count;
for (int i = 0; i < import_row_count; i++)
{
for (int j = 0; j < import_column_count; j++)
{
data[i,j]=sheet_import.Cells[i+1,j+1].Text;
}
}
這樣 我們的讀取操作就完成了我們的操作也是比較簡單
1.我們需要創建我們的Excel,並且給到我們的Excel 被讀取文件的目錄,但是需要注意的是,Excel的讀取文件目錄無法直接讀取到bin目錄及Debug目錄下。需要認為的去獲取當前項目的根目錄,
string FilePath = System.IO.Directory.GetCurrentDirectory();
這樣我們就獲取到了我們的根目錄。
接着我們創建了一個二維數組用於存儲存儲我們的數據。
將數據導成二維數組的方法在這里不細說,如果不懂可以自行百度。
有幾個點可以講一下:
- Excel中的索引是從1開始並不是我們常用的0開始
- 我們在讀取完成后盡量的去關閉或者是清除垃圾,這樣可以有效的防止下次操作時出現進程占用的尷尬情況。
- 代碼中出現的UsedRange 表示被使用過的范圍,如果不是很重要可以通過這個方式進行獲取Excel 中的行數和列數。
- 在我獲取Excel指定單元格時前往要注意是從 ’ 1 ‘ 開始並非是 0 開始。
這樣我們的C#對Excel 的讀取操作就基本完成了。
C# 導出Excel格式的文件
首先我們講一下我們大概的流程。
確定文件保存位置 -> 創建Excel進程 -> 創建Excel 的使用區域(這一步十分的重要)-> 將 被導入數據作為一個整體,直接賦值給我們Excel的 sheet表格。 -> 保存文件 -> 退出我們的進程 -> 使用 GC進行垃圾回收
大概流程應該比較好懂,沒有什么難度。
可能會很好奇為啥要將被導入數據作為一個整體賦值給生成文件,因為這樣的速度奇快。
然后我們看一下代碼:
string export_path = @"F:\test.xlsx";
Excel.Application excel_export = new Excel.Application();
Excel.Workbook book_export = excel_export.Workbooks.Add(true);
Excel.Worksheet sheet_export = book_export.ActiveSheet as Excel.Worksheet;
Excel.Range range = sheet_export.Range[excel_export.Cells[1, 1], excel_export.Cells[import_row_count, import_column_count]];
range.Value2 = data;
GC.Collect();
book_export.SaveAs(export_path);
book_export.Save();
excel_export.Quit();
這樣我們的文件導出為Excel就完成了。
我們來詳細的講一下我們的導出操作。
首先我們需要確定好我們的文件保存路徑,然后我們生成Excel 進程,並且確定 被導入數據在Excel 所要占用的位置,將數據作為整體賦值給rabge.
然后就是文件保存、進程退出、垃圾回收。
好了,這個Excel 的相關操作就這么多了,感謝你的閱讀。