c#中Excel数据的导入、导出

ExpandedBlockStart.gifContractedBlock.gif/**//// <summary>
InBlock.gif
/// 导出到 Excel 文件
InBlock.gif
/// </summary>
InBlock.gif
/// <param name="fileName">含完整路径</param>
ExpandedBlockEnd.gif
/// <param name="dataTable">含字段标题名</param>

None.gifpublic void ExpExcel(string fileName ,DataTable dataTable)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif    Excel.ApplicationClass apc 
=new Excel.ApplicationClass();
InBlock.gif
InBlock.gif    apc.Visible 
= false ;
InBlock.gif    Excel.Workbook wkbook 
= apc.Workbooks.Add( true ) ;
InBlock.gif    Excel.Worksheet wksheet 
= (Excel.Worksheet)wkbook.ActiveSheet;
InBlock.gif
InBlock.gif    
int rowIndex = 2;
InBlock.gif    
int colIndex = 1;
InBlock.gif
InBlock.gif    wksheet.get_Range(apc.Cells[
1,1],apc.Cells[dataTable.Rows.Count,dataTable.Columns.Count]).NumberFormat = "@";
InBlock.gif
InBlock.gif    
//取得列标题
InBlock.gif
    foreach (DataColumn dc in dataTable.Columns)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        colIndex 
++;
InBlock.gif        wksheet.Cells[
1,colIndex] = dc.ColumnName;
ExpandedSubBlockEnd.gif    }

InBlock.gif
InBlock.gif    
//取得表格中数据
InBlock.gif
    foreach (DataRow dr in dataTable.Rows)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        colIndex 
= 1;
InBlock.gif        
foreach (DataColumn dc in dataTable.Columns)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
if(dc.DataType == System.Type.GetType("System.DateTime"))
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                apc.Cells[rowIndex,colIndex] 
= "'"+(Convert.ToDateTime(dr[dc.ColumnName].ToString())).ToString("yyyy-MM-dd");
ExpandedSubBlockEnd.gif            }

InBlock.gif            
else
InBlock.gif                
if(dc.DataType == System.Type.GetType("System.String"))
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                apc.Cells[rowIndex,colIndex] 
= "'"+dr[dc.ColumnName].ToString();
ExpandedSubBlockEnd.gif            }

InBlock.gif            
else
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                apc.Cells[rowIndex,colIndex] 
= "'"+dr[dc.ColumnName].ToString();
ExpandedSubBlockEnd.gif            }

InBlock.gif
InBlock.gif            wksheet.get_Range(apc.Cells[rowIndex,colIndex],apc.Cells[rowIndex,colIndex]).HorizontalAlignment 
= Excel.XlHAlign.xlHAlignLeft;
InBlock.gif
InBlock.gif            colIndex
++;
ExpandedSubBlockEnd.gif        }

InBlock.gif        rowIndex
++;
ExpandedSubBlockEnd.gif    }

InBlock.gif    
InBlock.gif    
//设置表格样式
InBlock.gif
    wksheet.get_Range(apc.Cells[1,1],apc.Cells[1,dataTable.Columns.Count]).Interior.ColorIndex = 20
InBlock.gif    wksheet.get_Range(apc.Cells[
1,1],apc.Cells[1,dataTable.Columns.Count]).Font.ColorIndex = 3;
InBlock.gif    wksheet.get_Range(apc.Cells[
1,1],apc.Cells[1,dataTable.Columns.Count]).Borders.Weight = Excel.XlBorderWeight.xlThin;
InBlock.gif    wksheet.get_Range(apc.Cells[
1,1],apc.Cells[dataTable.Rows.Count,dataTable.Columns.Count]).Columns.AutoFit();
InBlock.gif
InBlock.gif    
if(File.Exists(fileName))
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        File.Delete(fileName);
ExpandedSubBlockEnd.gif    }

InBlock.gif
InBlock.gif    wkbook.SaveAs( fileName ,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing, Excel.XlSaveAsAccessMode.xlNoChange ,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing);
InBlock.gif   
InBlock.gif    wkbook.Close(Type.Missing,Type.Missing,Type.Missing);
InBlock.gif    apc.Quit();
InBlock.gif    wkbook 
= null;
InBlock.gif    apc 
= null;
InBlock.gif    GC.Collect();
ExpandedBlockEnd.gif}

ExpandedBlockStart.gifContractedBlock.gif
/**//// <summary>
InBlock.gif
/// 从Excel导入帐户(逐单元格读取)
InBlock.gif
/// </summary>
ExpandedBlockEnd.gif
/// <param name="fileName">完整路径名</param>

None.gifpublic IList ImpExcel(string fileName)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif    IList alExcel 
= new ArrayList();
InBlock.gif    UserInfo userInfo 
= new UserInfo();
InBlock.gif
InBlock.gif    Excel.Application app;
InBlock.gif    Excel.Workbooks wbs;
InBlock.gif    Excel.Worksheet ws;
InBlock.gif
InBlock.gif    app 
= new Excel.Application();
InBlock.gif    wbs 
= app.Workbooks;
InBlock.gif    wbs.Add(fileName);
InBlock.gif    ws
= (Excel.Worksheet)app.Worksheets.get_Item(1);
InBlock.gif    
int a = ws.Rows.Count;
InBlock.gif    
int b = ws.Columns.Count;
InBlock.gif    
InBlock.gif    
for ( int i = 2; i < 4; i++)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        
for ( int j = 1; j < 21; j++)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            Excel.Range range 
= ws.get_Range(app.Cells[i,j],app.Cells[i,j]);
InBlock.gif            range.Select();
InBlock.gif            alExcel.Add( app.ActiveCell.Text.ToString() );
ExpandedSubBlockEnd.gif        }

ExpandedSubBlockEnd.gif    }

InBlock.gif
InBlock.gif    
return alExcel;
ExpandedBlockEnd.gif}

None.gif
None.gif
ExpandedBlockStart.gifContractedBlock.gif
/**//// <summary>
InBlock.gif
/// 从Excel导入帐户(新建oleDb连接,Excel整表读取,适于无合并单元格时)
InBlock.gif
/// </summary>
InBlock.gif
/// <param name="fileName">完整路径名</param>
ExpandedBlockEnd.gif
/// <returns></returns>

None.gifpublic DataTable ImpExcelDt (string fileName)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif    
string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = " + fileName + ";Extended Properties=Excel 8.0" ;
InBlock.gif    OleDbConnection myConn 
= new OleDbConnection ( strCon ) ;
InBlock.gif    
string strCom = " SELECT * FROM [Sheet1$] " ;
InBlock.gif    myConn.Open ( ) ;
InBlock.gif    OleDbDataAdapter myCommand 
= new OleDbDataAdapter ( strCom , myConn ) ;
InBlock.gif    DataSet myDataSet 
= new DataSet ( ) ;
InBlock.gif    myCommand.Fill ( myDataSet , 
"[Sheet1$]" ) ;
InBlock.gif    myConn.Close ( ) ;
InBlock.gif
InBlock.gif    DataTable dtUsers 
= myDataSet.Tables[0];
InBlock.gif
InBlock.gif    
return dtUsers;
ExpandedBlockEnd.gif}

None.gif
None.gif
None.gifdataGrid中显示:
None.gifDataGrid1.DataMember
= "[Sheet1$]" ;
None.gifDataGrid1.DataSource 
= myDataSet ;

转载于:https://www.cnblogs.com/liuzhixian/articles/851983.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/464094.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

你对Linux下的实时性应该多点了解

作者简介顺刚(网名:沐多)&#xff0c;一线码农&#xff0c;从事工控行业&#xff0c;目前在一家工业自动化公司从事工业实时现场总线开发工作&#xff0c;喜欢钻研Linux内核及xenomai&#xff0c;个人博客 wsg1100&#xff0c;欢迎大家关注&#xff01;本文讲述一些有利于提高x…

ria website

http://www.36ria.com/

Epoll例子的使用

第一部分&#xff1a;Epoll简介 问题 : Select,Poll和Epoll的区别 答案 : Epoll和Select的区别 1. 遍历方式的区别 。select判断是否有事件发生是遍历的&#xff0c;而epoll是事件响应的&#xff0c;一旦句柄上有事件来了&#xff0c;就马上选出来。 2. 数目的区别。select一…

DHCP机制

DHCP概念&#xff1a;局域网的网络协议&#xff0c;使用UDP协议工作&#xff0c;在工作过程中&#xff0c;它有两个对象&#xff0c;DHCP客户端和DHCP服务端&#xff0c;DHCP服务运行在&#xff16;&#xff17;端口和&#xff16;&#xff18;端口。 用途&#xff1a;&#xf…

C#中写入Excel

usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Web;usingSystem.Data;namespaceCommon.BaseClass{publicclassFileExport{#region导出文件为 Excel文件 文本格式///<summary>///导出文件为 Excel文件///</summary>///<param name&…

这C语言写法谁见过

这是一个读者发给我的&#xff0c;我自己也没有见过这样的写法&#xff0c;有谁知道的&#xff0c;可以评论说下。谢谢各位&#xff01;

一号团队-团队任务3:每日立会(2018-12-01)

一.基本信息 团队序号&#xff1a;一号 开发的软件名称&#xff1a;Java教学官网 撰写人&#xff1a;张浩洋 学号:2016035107283 职务:项目经理 二.团队汇报 1.汇报文字版 一号团队全体成员与2018年12月01日在第一组项目群中针对2018年11月30日工作任务进行汇报&#xff0c;汇总…

老陈学 C++ 序列之二: 友元函数

class one{ public: one(){}; operator two ( ) const { return two(); } friend ostream& operator << ( ostream& os, const one& o) //成员函数还是全局函数&#xff1f; { return os << " i " << o.i; } int i; …

40 岁的中年失业

大家好&#xff0c;我是写代码的篮球球痴&#xff0c;昨天发了一篇文章&#xff0c;有一个朋友转发了&#xff0c;然后看到有人评论&#xff0c;如下&#xff1a;前两天有朋友问我&#xff0c;说腾讯裁员好严重&#xff0c;还有如何如何&#xff0c;我是这样回答的。很多事情我…

Linux/Windows系统内核性能调优

做过Linux平台性能测试的童鞋平时可能会遇到如下问题&#xff1a; 1、 TCP端口号不够用导致并发上不去&#xff08;即与服务器端建立新连接失败&#xff09; 2、 TIME_WAIT状态连接过多导致应用服务器&#xff08;Nginx、Haproxy、Redis、Tomcat等&#xff09;性能下降或假死…

hwclock: Open of /dev/rtc failed, errno=19: No such device.

今早一台服务器故障&#xff0c;后来有空上来查看故障日志&#xff0c;未果&#xff0c;发现时间不对&#xff0c;如下&#xff1a; [rootcache06 ~]# hwclock -w Cannot access the Hardware Clock via any known method. Use the --debug option to see the details of our s…

MCU复位和程序启动那些事

大家好&#xff0c;这篇文章转自电源漫谈&#xff0c;文章从专业的角度说明了MCU复位经过的过程&#xff0c;对大家学习很有帮助。MCU通常会在工作之前&#xff0c;先经历复位和启动的一个过程&#xff0c;在用户使用过程中往往在这个阶段的工作不是那么的清楚&#xff0c;这里…

逆波兰表达式[栈 C 语言 实现]

逆波兰表达式 逆波兰表达式又叫做后缀表达式。在通常的表达式中&#xff0c;二元运算符总是置于与之相关的两个运算对象之间&#xff0c;这种表示法也称为中缀表示。波兰逻辑学家J.Lukasiewicz于1929年提出了另一种表示表达式的方法&#xff0c;按此方法&#xff0c;每一运算符…

FireFox不支持cursor:hand

这个在IE/Firefox下都支持可以使用cursor:pointer;转载于:https://www.cnblogs.com/kaixin110/archive/2007/08/22/865287.html

Red Hat 6.0 Installation Steps

1) 注册和下载 - 需要一个公司email地址来接收RH的确认邮件 https://cn.redhat.com/products/enterprise-linux/server/download.html 下载免费红帽企业 Linux 30 天评估版 - 注册完毕转入下载页面 https://access.redhat.com/downloads/ -选择免费评估版本, 收到确认邮件, 找到…

若有所思

今天出来​逛了下&#xff0c;没有准备文章&#xff0c;刚好一个朋友有一段思考&#xff0c;给大家分享下。深圳动物园是一个值得去的地方​-----佚名海边的夏天&#xff0c;太阳公公当空照&#xff0c;照的大地滚烫&#xff0c;海水湛蓝。人们都躲到树荫下&#xff0c;享受舶风…

HDU 4383 To The Moon 解题报告

HDU 4383 To The Moon 题意翻译 已知一个长为\(n\)的序列\(a\)&#xff0c;你需要进行下面的四种操作。 C l r d 将区间\([l,r]\)中的数加上\(d\),同时时间加\(1\) Q l r 查询当前时间区间\([l,r]\)中所有数的和 H l r t 查询时间为\(t\)时区间\([l,r]\)中所有数的和 B t 将当前…

第三章 阴阳的工作机制(1)

一、道生一&#xff0c;一生二&#xff0c;二生三&#xff0c;三生万物1.易有太极&#xff0c;是生两仪上面&#xff0c;对阴阳已经讨论了很多&#xff0c;对这个问题已经有所了解。现在我们来讨论"阴阳的工作机制"&#xff0c;弄清楚这个以后对理解《伤寒论》的许多…

tcp窗口滑动以及拥塞控制

转自&#xff1a;http://blog.chinaunix.net/uid-26275986-id-4109679.html TCP协议作为一个可靠的面向流的传输协议&#xff0c;其可靠性和流量控制由滑动窗口协议保证&#xff0c;而拥塞控制则由控制窗口结合一系列的控制算法实现。 一、滑动窗口协议 关于这部分自己不…

jquery 操作日期、星期、元素的追加

主要实现日期的显示&#xff0c;获取年月日&#xff0c;时分秒、星期、判断闰年<script language"javascript" >$(document).ready(function(){function show(){var mydatenew Date();var str "" mydate.getFullYear() "年"; …