Excel導出在C#代碼中應用己經很廣泛了,我這里就做些總結,供自己和讀者學習用。
Excel知識點。
一、添加引用和命名空間
添加Microsoft.Office.Interop.Excel引用,它的默認路徑是C:PRogram FilesMicrosoft Visual
Studio 9.0Visual Studio Tools for
OfficePIAOffice12Microsoft.Office.Interop.Excel.dll
代碼中添加引用using
Microsoft.Office.Interop.Excel;
二、Excel類的簡單介紹
此命名空間下關于Excel類的結構分別為:
applicationClass - 就是我們的excel應用程序。
Workbook -
就是我們平常見的一個個excel文件,經常是使用Workbooks類對其進行操作。
Worksheet - 就是excel文件中的一個個sheet頁。
Worksheet.Cells[row, column] -
就是某行某列的單元格,注意這里的下標row和column都是從1開始的,跟我平常用的數組或集合的下標有所不同。
知道了上述基本知識后,利用此類來操作excel就清晰了很多。
三、Excel的操作
任何操作Excel的動作首先肯定是用excel應用程序,首先要new一個ApplicationClass 實例,并在最后將此實例釋放。
ApplicationClass xlsApp = new ApplicationClass(); // 1. 創建Excel應用程序對象的一個實例,相當于我們從開始菜單打開Excel應用程序。
if (xlsApp == null)
{
//對此實例進行驗證,如果為null則表示運行此代碼的機器可能未安裝Excel
}1. 打開現有的Excel文件
代碼如下 | 復制代碼 |
Workbook workbook = xlsApp.Workbooks.Open(excelFilePath, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); |
mySheet.Copy(Type.Missing, workbook.Sheets[1]); //復制mySheet成一個新的sheet頁,復制完后的名稱是mySheet頁名稱后加一個(2),這里就是testsheet(2),復制完后,Worksheet的數量增加一個注意
這里Copy方法的兩個參數,指是的復制出來新的sheet頁是在指定sheet頁的前面還是后面,上面的例子就是指復制的sheet頁在第一個sheet頁的后面。
3.刪除sheet頁
代碼如下 | 復制代碼 |
xlsApp.DisplayAlerts = false; //如果想刪除某個sheet頁,首先要將此項設為fasle。
workbook.Saved = true; workbook.Close(true, Type.Missing, Type.Missing); /// <summary> if (xlApp == null) |
如果要在excel中插入圖片,我們需要把代碼加入一行即可,如下所示
代碼如下 | 復制代碼 |
protected void ExportExcel(DataTable dt) if (xlApp == null) public void GenerateExcel() |
運行結果如下所示:
其中如下代碼的作用是
代碼如下 | 復制代碼 |
worksheet.Shapes.AddPicture("C:/Users/spring/Desktop/1.gif", Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoCTrue, 100, 200, 200, 300);在Excel的指定位置加入圖片 worksheet.Shapes.AddTextEffect(Microsoft.Office.Core.MsoPresetTextEffect.msoTextEffect1, "123456", "Red", 15, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoTrue, 150, 200); |
在Excel的指定位置加入文本框,和里面的內容.
我們可以這樣來設計一個ExcelBase的基類:
先創建一個ExcelBE.cs:
代碼如下 | 復制代碼 |
public ExcelBE(int row, int col, string text, string startCell, string endCell, string interiorColor, bool isMerge, int size, string fontColor, string format) public ExcelBE() public int Row public int Col public string Text public string StartCell public string EndCell public string InteriorColor public bool IsMerge public int Size public string FontColor public string Formart } |
接下來創建ExcelBase.cs:
代碼如下 | 復制代碼 |
public class ExcelBase public ExcelBase() public void createDoc() public void InsertData(ExcelBE be) private int GetColorValue(string interiorColor) default: |
調用的代碼如下:
代碼如下 | 復制代碼 |
private void btnRun_Click(object sender, EventArgs e) } |
新聞熱點
疑難解答