.NET操作Excel笔记

摘要:
如果创建新项目,必须首先添加Microsoft.Office。Core和Microsoft.Office。互操作Excel的两个应用程序可以方便地操作。示例代码(仅简单的读写):1.privateExcel_ApplicationexcelApp;2私人工作簿类;34excelApp=新Excel。应用程序();56物镜

如果你新建一个项目的话,首先要添加Microsoft.Office.Core 与Microsoft.Office.Interop.Exce这两个应用,然后就能很方便的操作了,示例代码(只实现了简单的读写):

 

1privateExcel._Application excelApp; 
2privateWorkbook wbclass; 
3   
4excelApp = newExcel.Application(); 
5   
6objectobjOpt = System.Reflection.Missing.Value; 
7               
8wbclass = (Workbook)excelApp.Workbooks.Open("E:Book6.xlsx", objOpt, false, objOpt, objOpt, objOpt, true, objOpt, objOpt, true, objOpt, objOpt, objOpt, objOpt, objOpt);


上面声明,引用,并把要操作的 excel 的路径传给他

 

得到所有的表名:

 

 

1List<string> list = new List<string>();
2           Excel.Sheets sheets = wbclass.Worksheets;
3           string sheetNams = string.Empty;
4           foreach (Excel.Worksheet sheet in sheets)
5           {
6               list.Add(sheet.Name);
7           }

 

 

 获取某个表中的数据,这里获取的是sheet 表中的:

 

01publicExcel.Worksheet GetWorksheetByName(string name) 
02        
03            Excel.Worksheet sheet = null
04            Excel.Sheets sheets = wbclass.Worksheets; 
05            foreach (Excel.Worksheet s in sheets) 
06            
07                if(s.Name == name) 
08                
09                    sheet = s; 
10                    break
11                
12            
13            returnsheet; 
14        
15   
16        publicSystem.Data.DataTable GetDateTable(string name) 
17        
18            System.Data.DataTable dt = newSystem.Data.DataTable(); 
19   
20            var worksheet = GetWorksheetByName(name);      //调用上面的方法,利用表名得到这张表 
21   
22            string cellContent; 
23   
24            intiRowCount = worksheet.UsedRange.Rows.Count; 
25            intiColCount = worksheet.UsedRange.Columns.Count; 
26            Excel.Range range; 
27            for (intiRow = 1; iRow <= iRowCount; iRow++) 
28            
29                DataRow dr = dt.NewRow(); 
30   
31                for (intiCol = 1; iCol <= iColCount; iCol++) 
32                
33                    range = (Excel.Range)worksheet.Cells[iRow, iCol]; 
34   
35                    cellContent = (range.Value2 == null) ? "": range.Text.ToString(); 
36   
37                    if(iRow == 1
38                    
39                        dt.Columns.Add(cellContent); 
40                    
41                    else 
42                    
43                        dr[iCol - 1] = cellContent; 
44                    
45                
46   
47                if(iRow != 1
48                    dt.Rows.Add(dr); 
49            
50   
51            returndt; 
52   
53        }



上面得到的只是 

 
1System.Data.DataTable

如何把数据取出来,请看下面:

 

1var dataTable = GetDateTable("Sheet1");   //调用上面的方法 
2           
3           foreach (DataRow row indataTable.Rows) 
4           {      
5               stringa = (string)row[2]; 
6               stringb = (string)row[4]; 
7 
8}

免责声明:文章转载自《.NET操作Excel笔记》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇实现MySQL数据库同步实例演示(主从模式) 新风宇宙Java 1.8 红黑树下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

java利用SuffixFileFilter统计目录下特定后缀名文件的数目

/** * 文件处理类 * @author zhangcd * @date 2017年1月3日 */ public class FileUtil { /** * 得到所有后缀的数目 * * @param directory 目录 * @param suffixFilter 后缀 * @...

SpringBoot中前后端数据交互

不只适用于SpringBoot 工具:postman、IDEA 目的:测试前后端数据的交互情况、交互过程出现的明确各种问题及其解决方法 基础知识: Content-Type发送信息至服务器时内容编码类型,默认是( application/x-www-form-urlencoded 这种格式的特点就是,name/value 成为一组,每组之间用 &...

HTTP调用接口方法

Http调用第三方接口代码: /** * 房融界接口对接 * @return */ public Map<String,Object> frjRequest(){ String url="房融界提供的接口地址"; String result = ""; HttpPost httppost=new HttpPost(...

Java优化if-else代码几个解决方案

前言 开发系统一些状态,比如订单状态:数据库存储是数字或字母,但是需要显示中文或英文,一般用到if-else代码判断,但这种判断可读性比较差,也会影响后期维护,也比较容易出现bug。比如:假设状态对应关系:1:agree 2:refuse 3:finish int status; String statusStr = null; if (status ==...

基于Platinum库的DMS实现(android)

接上篇博文:基于Platinum库的DMR实现(android) 文章讲述了如何使用Platinum库实现DMR 今天同样使用该库,来讲解一下DMS的实现 关于该库如何编译,请参考这篇博文:NDK下 将Platinum SDK 编译成so库 (android - upnp) 下面给出运行效果图: 界面很简单,就是一些开关和设备名以及设备运行状态的展现 下...

sqlserver超时时间已到

public DataTable GetProDataTable(string produceName, SqlParameter[] para) { DataTable dt = new DataTable(); SqlCommand command = new SqlCommand(pro...