using Microsoft.Office.Interop.Excel;//引用Microsoft.Office.Interop.Excel
//聲明一個Excel Application?
Microsoft.Office.Interop.Excel.Application appExcel = new Microsoft.Office.Interop.Excel.Application();
? ? ? ? ? ? ? ? //聲明一個Excel Workbook
? ? ? ? ? ? ? ? Microsoft.Office.Interop.Excel.Workbook workbookData;
? ? ? ? ? ? ? ? //聲明一個Excel Work Sheet
? ? ? ? ? ? ? ? Microsoft.Office.Interop.Excel.Worksheet worksheetData;
? ? ? ? ? ? ? ? //打開路徑為filepath的Excel?
? ? ? ? ? ? ? ? workbookData = appExcel.Workbooks.Open(filepath?, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing);
? ? ? ? ? ? ? ? try
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? //不顯示彈窗、警告。在后臺寫入Excel
? ? ? ? ? ? ? ? ? ? appExcel.Visible = false;
? ? ? ? ? ? ? ? ? ? appExcel.DisplayAlerts = false;
? ? ? ? ? ? ? ? ? ? //獲取所有Sheet、SheetName
? ? ? ? ? ? ? ? ? ? int sheet = workbookData.Worksheets.Count;
? ? ? ? ? ? ? ? ? ? string[] sheetName = new string[sheet];
? ? ? ? ? ? ? ? ? ? for (int i = 0; i < sheet; i++)
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? worksheetData = (Worksheet)workbookData.Worksheets[i + 1];
? ? ? ? ? ? ? ? ? ? ? ? sheetName[i] = worksheetData.Name;
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? //判斷Sheet1$是否存在
? ? ? ? ? ? ? ? ? ? int sheetExist = Array.IndexOf(sheetName, "Sheet1$");
? ? ? ? ? ? ? ? ? ? if (sheetExist != -1)
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? //Sheet1$存在,則操作下一個Sheet
? ? ? ? ? ? ? ? ? ? ? ? worksheetData = (Worksheet)workbookData.Worksheets[sheetExist + 1];
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? if (sheet == 1)
? ? ? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? ? ? worksheetData = (Worksheet)workbookData.Worksheets[1];
? ? ? ? ? ? ? ? ? ? ? ? ??//往Sheet1$ H列 11+i行寫入數(shù)值,并格式化為Wingdings 2,即在Excel執(zhí)行打勾操作
? ? ? ? ? ? ? ? ? ? ? ? ? ? for (int i = 0; i < checkItem; i++)
? ? ? ? ? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? worksheetData.Range["H" + (11 + i)].Value = "R";
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? worksheetData.Range["H" + (11 + i)].Characters.Font.Name = "Wingdings 2";
? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? ? ? //worksheetData.Range["H11"].Value = "R";
? ? ? ? ? ? ? ? ? ? ? ? ? ? //worksheetData.Range["H11"].Characters.Font.Name = "Wingdings 2";
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? ? ? worksheetData = (Worksheet)workbookData.Worksheets[sheet];
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? if (sheet < qty)
? ? ? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? ? ? //新增Sheet,復(fù)制Sheet1內(nèi)容到Sheet1后面
? ? ? ? ? ? ? ? ? ? ? ? ? ? worksheetData.Copy(After: worksheetData);
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? worksheetData.Name = "Sheet 名字";
? ? ? ? ? ? ? ? ? ? //往框內(nèi)賦值,可先用Excel宏記錄操作獲得下列命令
? ? ? ? ? ? ? ? ? ? worksheetData.Range["D4:F4"].Value = "值1";
? ? ? ? ? ? ? ? ? ? worksheetData.Range["D5:F5"].Value = "值2";
? ? ? ? ? ? ? ? ? ? worksheetData.Range["D7:F7"].Value = "值3";
? ? ? ? ? ? ? ? ? ? worksheetData.Range["D8:F8"].Value = "值4";
? ? ? ? ? ? ? ? ? ?workbookData.Save();
? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? catch
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? MessageBoxEx.Show("Error Code: 0x002");
? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? finally
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? workbookData.Close();
? ? ? ? ? ? ? ? }
//宏記錄操作,可將里面的代碼復(fù)制到程序中使用
?文章來源地址http://www.zghlxwxcb.cn/news/detail-531972.html文章來源:http://www.zghlxwxcb.cn/news/detail-531972.html
?
到了這里,關(guān)于C#調(diào)用Microsoft.Office.Interop.Excel時的常見操作功能的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!