导入导出excel表

问题描述

c#怎样导入导出excel表?(最好提供一个示例代码及教程)

解决方案

解决方案二:
可以引用EXCEL的Com控件,但很麻烦。网上很多第三方操作的控件,自己可以找一下,比如Aspose.Cell,FarPoint,等
解决方案三:
先要添加com控件,然后才能使用。以下是我做的一个系统输出到Execl表格的代码,供你参考:privatevoidtoolStripButton_print_Click(objectsender,EventArgse){intRCount=dataGridView1.Rows.Count;intCCount=dataGridView1.Columns.Count;//从工具箱中添加一个“保存”对话框saveFileDialog1.DefaultExt="xls";saveFileDialog1.Filter="EXCEL文件(*.xls)|*.xls";//EXcel文件名称saveFileDialog1.FileName="横向课题信息表";saveFileDialog1.InitialDirectory=Directory.GetCurrentDirectory();//取消if(saveFileDialog1.ShowDialog()==DialogResult.Cancel){return;}stringfileNameString=saveFileDialog1.FileName;if(fileNameString.Length==0){MessageBox.Show("文件名不能为空!");return;}FileInfofile=newFileInfo(fileNameString);if(file.Exists){/*if(MessageBox.Show("文件已存在,要替换吗?","提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Question)==DialogResult.Cancel){return;}*/try{file.Delete();}catch(Exceptionex){MessageBox.Show(ex.Message,"异常",MessageBoxButtons.OK,MessageBoxIcon.Error);return;}}//注意引用的添加Excel.ApplicationobjExcel=null;Excel.WorkbookobjWorkbook=null;Excel.Worksheetobjsheet=null;try{objExcel=newExcel.Application();objWorkbook=objExcel.Workbooks.Add(Type.Missing);objsheet=(Excel.Worksheet)objWorkbook.ActiveSheet;objExcel.Visible=true;Excel.Rangemyrang13=objsheet.get_Range(objExcel.Cells[2,1],objExcel.Cells[1,8]);myrang13.Font.Bold=true;myrang13.Font.Size="18";objExcel.Cells[1,8]="横向课题信息";objExcel.Cells[2,1]="打印日期:"+DateTime.Now.ToShortDateString();//向Excel中写入表格的表头intdisplayColumnsCount=1;for(inti=0;i<=dataGridView1.ColumnCount-1;i++){if(dataGridView1.Columns[i].Visible==true){objExcel.Cells[3,displayColumnsCount]=dataGridView1.Columns[i].HeaderText.Trim();displayColumnsCount++;}}//向Excel中写入数据for(introw=0;row<=dataGridView1.RowCount-1;row++){displayColumnsCount=1;for(intcol=0;col<CCount;col++){if(dataGridView1.Columns[col].Visible==true){try{stringvalue;if(col==4||col==7||col==11||col==12||col==14||col==16||col==18||col==20){value="'"+this.dataGridView1.Rows[row].Cells[col].Value.ToString().Trim();}elsevalue=this.dataGridView1.Rows[row].Cells[col].Value.ToString().Trim();objExcel.Cells[row+4,displayColumnsCount]=value;//objExcel.Cells[row+4,displayColumnsCount]=this.dataGridView1.Rows[row].Cells[col].Value.ToString().Trim();displayColumnsCount++;}catch(Exception){}}}}objWorkbook.SaveAs(fileNameString,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Excel.XlSaveAsAccessMode.xlShared,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing);}catch(Exceptionex){MessageBox.Show(ex.Message,"异常",MessageBoxButtons.OK,MessageBoxIcon.Error);return;}finally{//关闭Excel应用if(objWorkbook!=null)objWorkbook.Close(Type.Missing,Type.Missing,Type.Missing);if(objExcel.Workbooks!=null)objExcel.Workbooks.Close();if(objExcel!=null)objExcel.Quit();objsheet=null;objWorkbook=null;objExcel=null;}MessageBox.Show(fileNameString+"nn导出完毕!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);}
解决方案四:
也可以不用添加excel引用,而是直接用流来实现:privatevoidbutton3_Click(objectsender,EventArgse){SaveFileDialogsaveFileDialog=newSaveFileDialog();saveFileDialog.Filter="Execlfiles(*.xls)|*.xls";saveFileDialog.FilterIndex=0;saveFileDialog.RestoreDirectory=true;saveFileDialog.CreatePrompt=true;saveFileDialog.Title="ExportExcelFileTo";if(saveFileDialog.ShowDialog()==DialogResult.OK){StreammyStream;myStream=saveFileDialog.OpenFile();StreamWritersw=newStreamWriter(myStream,System.Text.Encoding.GetEncoding(-0));stringstr="";try{//写标题for(inti=0;i<dataGridView1.ColumnCount;i++){if(i>0){str+="t";}str+=dataGridView1.Columns[i].HeaderText;}sw.WriteLine(str);//写内容for(intj=0;j<dataGridView1.Rows.Count;j++){stringtempStr="";for(intk=0;k<dataGridView1.Columns.Count;k++){if(k>0){tempStr+="t";}tempStr+=dataGridView1.Rows[j].Cells[k].Value.ToString();}sw.WriteLine(tempStr);}sw.Close();myStream.Close();}catch(Exceptionex){MessageBox.Show(ex.ToString());}finally{sw.Close();myStream.Close();}}}

//数据放在datagridview中,如果不需要datagridview则可直接放在dataset中,若用datagridview需加上这两句dataGridView1.AllowUserToAddRows=false;//在datagridview中不显示最下面带*的行dataGridView1.AllowUserToDeleteRows=false;//不允许用户删除行这两行
解决方案五:
楼上两位正解。
解决方案六:
这里有一个可以直接使用的导出Excel的方法,用html填充资料的publicvoidExportToExcel(DataTabledt){Response.Clear();Response.Buffer=true;Response.Charset="UTF-8";Response.AppendHeader("Content-Disposition","attachment;filename=FileName.xls");Response.ContentEncoding=System.Text.Encoding.GetEncoding("UTF-8");Response.Write("<html><head><metahttp-equiv=Content-Typecontent="text/html;charset=utf-8">");Response.ContentType="application/ms-excel";this.EnableViewState=false;stringcolHeaders="";intcolCount=dt.Columns.Count-1;StringBuildersb=newStringBuilder();colHeaders="<tablestyle="FONT-SIZE:15px"border="1">";sb.Append(colHeaders);sb.Append("<tr>");for(inti=0;i<=colCount;i++){sb.Append("<tdalign=middle>");sb.Append(dt.Columns[i].ColumnName.ToString());sb.Append("</td>");}sb.Append("</tr>");for(inti=0;i<dt.Rows.Count;i++){sb.Append("<tralign=left>");for(intj=0;j<=colCount;j++){sb.Append("<td>");sb.Append(BlankString(dt.Rows[i][j].ToString().Trim()));//sb.Append(dt.Rows[i][j].ToString());sb.Append("</td>");}sb.Append("</tr>");}colHeaders=sb.ToString();colHeaders=colHeaders+"n";Response.Write(colHeaders);Response.Write("</body></html>");Response.End();}
解决方案七:
引用5楼l1314j的回复:

这里有一个可以直接使用的导出Excel的方法,用html填充资料的publicvoidExportToExcel(DataTabledt){Response.Clear();Response.Buffer=true;Response.Charset="UTF-8";Response.AppendHeader("Content-Disposition","……

不需要添加引用
解决方案八:
学习.............................
解决方案九:
.Net组件里面有Microsoft.Office.Interop.Excel,在引用里加进去,并using一下。就可以用Microsoft.Office.Interop.Excel.Application对象了

时间: 2024-09-17 03:54:28

导入导出excel表的相关文章

从SQL Server中导入/导出 Excel 的基本方法

excel|server 从SQL Server中导入/导出 Excel 的基本方法 /*===================  导入/导出 Excel 的基本方法 ===================*/ 从Excel文件中,导入数据到SQL数据库中,很简单,直接用下面的语句: /*===================================================================*/--如果接受数据导入的表已经存在insert into 表 select

PHP导入导出Excel代码_php技巧

一.导入 导入需要使用能读取Excel的组件,网上也有比较好的组件,这里分享我使用的:下载  提取码:vxyn.(注意两个文件有引用关系) <?php //传入要导入的Excel的文件名 function import_to_DB($filename) { require_once'reader.php'; $data = new Spreadsheet_Excel_Reader(); //创建读取Excel的对象 $data->setOutputEncoding('utf-8'); //设置

Asp.Net使用Npoi导入导出Excel的方法_实用技巧

asp.net针对Excel文件的导入与导出是非常常见的功能之一.本文实例讲述了Asp.Net使用Npoi导入导出Excel的方法.分享给大家供大家参考之用.具体方法如下: 在使用Npoi导出Excel的时候,服务器可以不装任何office组件,一般在导出时用到Npoi导出Excel文件,所导Excel也符合规范,打开时也不会有任何文件损坏之类的提示.但是在做导入时还是使用OleDb的方式,这种方式的导入在服务器端似乎还是需要装office组件的. 一.Npoi导出/下载Excel 具体功能代码

Java利用POI实现导入导出Excel表格示例代码_java

介绍 Jakarta POI 是一套用于访问微软格式文档的Java API.Jakarta POI有很多组件组成,其中有用于操作Excel格式文件的HSSF和用于操作Word的HWPF,在各种组件中目前只有用于操作Excel的HSSF相对成熟.官方主页http://poi.apache.org/index.html,API文档http://poi.apache.org/apidocs/index.html 实现 已经在代码中加入了完整的注释. import java.io.FileInputSt

php导入导出excel实例_php实例

这里实现的PHP导入导出excel功能用到的是开源PHPExcel,执行下面的操作之前请先下载该类库文件,官方网站:http://www.codeplex.com/PHPExcel,官网案例代码很多,导出pdf什么的都有,这里主要介绍PHP导入导出excel的功能,导出excel文件是office2007格式,同时兼容2003. php导入excel导入的excel文件的数据格式,截图如下:下面是将该excel文件的数据导入到数据库的具体代码: 复制代码 代码如下: <?phprequire_o

急急急,。。。。。.net导出excel表,其中表头有几个列名是相同的怎么导出

问题描述 急急急,......net导出excel表,其中表头有几个列名是相同的怎么导出空空空联系地址商品名称 解决方案 解决方案二:相同的列名看你是想怎么展示了解决方案三:如果位置固定可以使用索引进行获得sheet[0]解决方案四:通过sheet获取表格Rangerange=datasheet.get_Range("A1","A2535");获取区域stringvalue=values.GetValue(i,j).ToString();获取单元格解决方案五:个人觉

excel-java web 我做了一个导出Excel表,为什么时而好使,时而不好使

问题描述 java web 我做了一个导出Excel表,为什么时而好使,时而不好使 java web 我做了一个导出Excel表,为什么时而好使,时而不好使,求大神指点,根据查询条件查出来的内容都可以导出成功,但是再点就有可能不好使了,不知道什么原因 解决方案 点完之后进行导出,导出之后刷新一下当前页面,再点应该就可以了. 解决方案二: 有什么错误信息呢?要是没有错误信息,那有没有进入后台查询呢

sql server-按条件从数据库中批量导出excel表

问题描述 按条件从数据库中批量导出excel表 一张表中有58万条记录,产地(产地为字符型)也有200个,按产地(如产地为北京的为一个excel表)分类导出带表头的excel表,excel表名与导出的产地一致.求各位大侠帮忙,万分感谢!(用oracle,sql server都可) 解决方案 http://blog.csdn.net/yongsheng0550/article/details/6714111 解决方案二: 数据库数据批量导出到excel利用POI将数据库表导出到Excel 解决方案

eos-EOS的导入导出excel问题

问题描述 EOS的导入导出excel问题 会的给分,谢谢大家,我以前是做java 的刚接触这个,不会,老板急需要功能实现. 解决方案 想请教下spring data 用那个shiro 注入报错的问题. 解决方案二: Excel导入导出乱码问题