C#如何在WinForm中打開(kāi)Excel文件,或打開(kāi)Excel應(yīng)用顯示數(shù)據(jù)
一、如何在WinForm中打開(kāi)Excel文件
步驟:
1、添加引用“Miscrosoft Excel 16.0 Object Library”,并導(dǎo)出命名空間:
using Microsoft.Office.Core; using Excel = Microsoft.Office.Interop.Excel;
2、創(chuàng)建Excel應(yīng)用對(duì)象,并獲取Workbook對(duì)象,和Worksheet對(duì)象。
Excel.Application ExcelApp = new Excel.Application(); Excel.Workbook worksBook = ExcelApp.Workbooks.Add(); //創(chuàng)建一個(gè)新工作簿 //也可以添加進(jìn)來(lái)一個(gè)已存在的工作簿 //Excel.Workbook wb = excelApp.Workbooks.Add("D://test.xlsx"); Excel.Worksheet workSheet = (Excel.Worksheet)worksBook.Worksheets[1]; //在工作簿中得到sheet。 //也可以用Excel.Worksheet workSheet = (Excel.Worksheet)worksBook.ActiveSheet語(yǔ)句獲取
3、將Excel應(yīng)用展現(xiàn)出來(lái)!
excelApp.Visible = true;
二、打開(kāi)Excel文件的代碼詳解
ExcelApp.Workbooks.Add(); 方法,新建一個(gè)工作表。 新工作表將成為活動(dòng)工作表。()中有一個(gè)可選參數(shù),類型為object,
如果此參數(shù)為指定現(xiàn)有 Microsoft Excel 文件名的字符串,那么創(chuàng)建新工作簿將以該指定的文件作為模板。
如果此參數(shù)為常量,新工作簿將包含一個(gè)指定類型的工作表。
此參數(shù)可以是以下 XlWBATemplate 常量之一:xlWBATChart、xlWBATExcel4IntlMacroSheet、xlWBATExcel4MacroSheet 或 xlWBATWorksheet。
- xlWBATChart -4109 圖表。
- xlWBATExcel4IntlMacroSheet 4 Excel 版本 4 宏。
- xlWBATExcel4MacroSheet 3 Excel 版本 4 國(guó)際宏。
- xlWBATWorksheet -4167 工作表。
在打開(kāi)Excel文件的時(shí)候,可以設(shè)置一些workSheet的屬性,如下:
workSheet.Name = "測(cè)試Sheet1"; //工作表的名稱 workSheet.Cells.WrapText = true; //設(shè)置所有列的文本自動(dòng)換行 workSheet.Cells.EntireRow.AutoFit(); //設(shè)置所有列自動(dòng)調(diào)整行高
三、如何向Excel中插入數(shù)據(jù)
在獲取到Worksheet對(duì)象后,我們就可以向表格中插入數(shù)據(jù)了。
實(shí)例代碼如下:
workSheet.Cells[1, "A"].Value = "我是一個(gè)字符串";
獲取單元格的方式是:
workSheet.Cells[row, column];
Cells是WorkSheet里的一個(gè)只讀屬性,Range類型,用來(lái)獲取某一個(gè)單元格。
如果要得到該單元格的值,使用:
workSheet.Cells[row, column].Value;
獲取多個(gè)單元格的方式:
Excel.Range range = (Excel.Range)workSheet.get_Range(startCell, endCell);
返回的是Range對(duì)象,表示連續(xù)的多個(gè)單元格。
四、如何設(shè)置Excel里的單元格格式
設(shè)置單元格格式的方式如下:
range.Merge(0); //合并方法,0的時(shí)候直接合并為一個(gè)單元格 range.Font.Size = 16; //字體大小 range.Font.Name = "黑體"; //字體 range.WrapText = true; //文本自動(dòng)換行 range.EntireRow.AutoFit(); //自動(dòng)調(diào)整行高 range.RowHeight = 20; //自定義設(shè)置行高 range.EntireColumn.AutoFit(); //自動(dòng)調(diào)整列寬 range.ColumnWidth = 15; //自定義設(shè)置列寬 range.HorizontalAlignment = XlVAlign.xlVAlignCenter; //橫向居中 range.Value = strText; //合并單元格之后,設(shè)置其中的文本 range.Interior.ColorIndex = 20; //填充顏色 range.Cells.Borders.LineStyle = 1; //設(shè)置單元格邊框的粗細(xì)
range可以是一個(gè)單元格,也可以是多個(gè)單元格的集合。
XlVAlign是一個(gè)枚舉類,用來(lái)表示單元格內(nèi)值的對(duì)齊方式。其內(nèi)部有5個(gè)枚舉值,含義分別如下
xlVAlignBottom = -4107, //底端對(duì)齊 xlVAlignCenter = -4108, //居中對(duì)齊 xlVAlignDistributed = -4117, //分散對(duì)齊 xlVAlignJustify = -4130, //兩端對(duì)齊 xlVAlignTop = -4160 //頂端對(duì)齊
五、如何設(shè)置Excel里的頁(yè)面格式
workSheet.PageSetup.PaperSize = Excel.XlPaperSize.xlPaperA4; //紙張大小 workSheet.PageSetup.Orientation = Excel.XlPageOrientation.xlLandscape; //頁(yè)面橫向 workSheet.PageSetup.Zoom = 75; //打印時(shí)頁(yè)面設(shè)置,縮放比例百分之幾 workSheet.PageSetup.Zoom = false; //打印時(shí)頁(yè)面設(shè)置,必須設(shè)置為false,頁(yè)高,頁(yè)寬才有效 workSheet.PageSetup.FitToPagesWide = 1; //設(shè)置頁(yè)面縮放的頁(yè)寬為1頁(yè)寬 workSheet.PageSetup.FitToPagesTall = false; //設(shè)置頁(yè)面縮放的頁(yè)高自動(dòng) workSheet.PageSetup.LeftHeader = "Nigel"; //頁(yè)面左上邊的標(biāo)志 workSheet.PageSetup.CenterFooter = "第 &P 頁(yè),共 &N 頁(yè)"; //頁(yè)面下標(biāo) workSheet.PageSetup.PrintGridlines = true; //打印單元格網(wǎng)線 workSheet.PageSetup.TopMargin = 1.5 / 0.035; //上邊距為2cm(轉(zhuǎn)換為in) workSheet.PageSetup.BottomMargin = 1.5 / 0.035; //下邊距為1.5cm workSheet.PageSetup.LeftMargin = 2 / 0.035; //左邊距為2cm workSheet.PageSetup.RightMargin = 2 / 0.035; //右邊距為2cm workSheet.PageSetup.CenterHorizontally = true; //文字水平居中
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
C#入門(mén)之結(jié)構(gòu)類型Struct
這篇文章介紹了C#入門(mén)之結(jié)構(gòu)類型Struct,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05C#?使用Fluent?API?創(chuàng)建自己的DSL(推薦)
DSL領(lǐng)域?qū)S谜Z(yǔ)言是描述特定領(lǐng)域問(wèn)題的語(yǔ)言,聽(tīng)起來(lái)很唬人,其實(shí)不是什么高深的東西,下面通過(guò)實(shí)例代碼介紹下C#?使用Fluent?API?創(chuàng)建自己的DSL,感興趣的朋友參考下吧2021-12-12C# 執(zhí)行CMD命令并接收返回結(jié)果的操作方式
這篇文章主要介紹了C# 執(zhí)行CMD命令并接收返回結(jié)果的操作方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04Unity2021發(fā)布WebGL與網(wǎng)頁(yè)交互問(wèn)題的解決
本文主要介紹了Unity2021發(fā)布WebGL與網(wǎng)頁(yè)交互問(wèn)題的解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05