Asp.net中操作Excel的代码解析

一 . 使用Excel对象模型创建Excel文档:
1.创建简单的文档

 1 try
 2 {
 3   //创建Excel程序对象
 4      Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
 5      //设置创建WorkBook时,WorkBook包含表单个数
 6      excel.SheetsInNewWorkbook = 1;
 7      //创建WorkBook
 8      excel.Workbooks.Add();
 9
10      //创建第一个工作表
11     Worksheet sheet = excel.ActiveWorkbook.Sheets[1];
12     //Worksheet sheet = (Worksheet)excel.ActiveWorkbook.Worksheets[1];
13
14     //给工作表设置名称
15      sheet.Name = "Student";
16      sheet.Cells[1, 1] = txtName.Text;
17      sheet.Cells[1, 2] = txtAge.Text;
18      sheet.Cells[1, 3] = txtHabit.Text;
19
20      //显示Excel
21      excel.Visible = true;
22      //现场休眠2000毫秒
23      System.Threading.Thread.Sleep(2000);
24
25      //保存当前活动的WorkBook
26      excel.ActiveWorkbook.SaveAs(
27          //Environment.CurrentDirectory + "/test.xls",//文件名
28          "f:/test.xls",
29          XlFileFormat.xlWorkbookNormal //保存文件的格式
30        );
31
32      //关闭当前活动的WorkBook
33      excel.ActiveWorkbook.Close();
34      //退出Excel应用程序
35             excel.Quit();
36 }
37 catch (Exception ex)
38 {
39
40      throw new Exception(ex.Message);
41 }

2.设置文档格式

 1 //设置字体样式
 2 Range ranRow = sheet.Range[sheet.Cells[2, 2], sheet.Cells[2, 10]];
 3 ranRow.Font.Bold = true;//字体加粗
 4 ranRow.Font.Color = Color.SeaGreen;//字体颜色
 5 //单元格操作
 6 ranRow.HorizontalAlignment=XlHAlign.xlHAlignCenter;//对齐方式
 7 ranRow .Interior.Color = Color.SeaGreen;//内边框样式
 8 range.MergeCells = true;//合并单元格
 9 //边框样式:
10 ranBorder.BorderAround(XlLineStyle.xlContinuous, XlBorderWeight.xlThick);//区域外边框样式
11 range.Borders.LineStyle = XlLineStyle.xlDouble;//内边框样式
12 //设置身份证号码,日期显示格式
13 range.NumberFormat = "0";
14 range.NumberFormatLocal = "yyyy-m-d";

二. 使用对象模型导出DataGridView数据到Excel文档
  1.直接在窗体设计界面代码使用DataGridView作为数据源,直接使用显示出来的值填充Excel表格。
  2.将DataGridView作为参数,传递到公共类中,需要在公共类中添加并导入 using System.Windows.Forms;
三. 导入Excel文档到DataTable中

 1         //创建Datatable对象,并添加列
 2         System.Data.DataTable dt = new System.Data.DataTable();
 3         for (int i = 0; i < 10; i++)
 4         {
 5             dt.Columns.Add(new DataColumn());
 6         }
 7
 8         Worksheet sheet = null;
 9         foreach (Worksheet sh in excel.ActiveWorkbook.Worksheets)
10         {
11             if (sh.Name == "Sheet1")
12             {
13                 sheet = sh;
14             }
15             if (sheet != null)
16             {
17                 int r = 2;
18                 while (true)
19                 {
20                     Range rName = sheet.Cells[r, 3] as Range;
21                     if (rName.Text.ToString().Trim().Length == 0)
22                     {
23                         break;
24                     }
25                     DataRow row = dt.NewRow();
26
27
28                     for (int i = 0; i < 10; i++)
29                     {
30                         row[i] = sheet.Cells[r, i + 1].Text;
31
32                     }
33                     dt.Rows.Add(row);
34                     r++;
35                 }
36             }
37         }

四. 使用ADO.NET导入Excel内容

 1         //连接字符串
 2         string conStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=‘E:/N-Tier/Lesson8/学生基本信息.xls‘;Extended Properties=‘Excel 8.0;HDR=YES;IMEX=1‘";
 3         string sql = string.Format("select * from [{0}$]", "Sheet1");
 4         DataTable dt = new DataTable();
 5         using (OleDbConnection con = new OleDbConnection(conStr))
 6         {
 7             con.Open();
 8             OleDbDataAdapter odda = new OleDbDataAdapter(sql, con);
 9             odda.Fill(dt);
10         }
11         return dt;
时间: 2024-10-10 20:10:30

Asp.net中操作Excel的代码解析的相关文章

C#开发中使用Npoi操作excel实例代码

C#开发中使用Npoi操作excel实例代码 出处:西西整理 作者:西西 日期:2012/11/16 9:35:50 [大 中 小] 评论: 0 | 我要发表看法 Npoi 是什么? 1.整个Excel表格叫做工作表:WorkBook(工作薄),包含的叫页(工作表):Sheet:行:Row:单元格Cell. 2.Npoi 下载地址:http://npoi.codeplex.com/releases/view/38113 3.Npoi 学习系列教程推荐:http://www.cnblogs.com

ASP.NET中读取excel内容并显示

项目中经常会用到把excel的文件内容导入到数据库中的,刚刚花了点时间,做了个例子,基本上能实现导入Excel后显示的功能吧,导入的excel文件得是xls,即是2003的.     代码思路如下:要读取的excel文件必得得是在本地硬盘,所以一般来说都是让远程用户选择自己硬盘上的Excel文件,然后把用户选择的文件上传到本地服务器上,再在本地服务器上进行操作.我把界面后置代码重要部分贴出来,大家自己慢慢看吧,都有注释了. C#代码   // 上传按钮 protected void btnUp_

j2e中操作EXCEL

在j2e中操作excel,无非2种情况,在这里我贴部分代码做个例子就OK,不管是导入和导出都是操作的都是流 1,导入,浏览器输入EXCEL到java后台解析 package action; import java.io.OutputStream; import java.sql.ResultSet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import

ASP.net中导出Excel的简单方法介绍

下面介绍一种ASP.net中导出Excel的简单方法 先上代码:前台代码如下(这是自己项目里面写的一点代码先贴出来吧) <div id="export" runat="server" style="width: 700px; margin-left: auto; margin-right: auto;"> <!--startprint--> <table width="100%" border=&

ASP.NET中DataList数字分页代码

ASP.NET中DataList数字分页代码 转 荐 好长时间没发东西了, 之前一段时间一直在做别的东西, 最近java实验室要开搞系统哈哈, 重新学习.net 这个分页困扰了我这个菜鸟好久阿, 搞了好久终于找到这段代码, 还是数字分页, 试了成功了~还不会分页的朋友看到这个就偷笑吧~~ 代码转自http://hi.baidu.com/honfei css样式取自吴旗娃aspnetpager 效果: 共1页       首页 上一页  1 2 3 4 5 6 7 8 9 10 ....下一页 末

asp.net中ashx生成验证码代码放在Linux(centos)主机上访问时无法显示问题

最近有个项目加入了验证码功能,就从自己博客以前的代码中找到直接使用,直接访问验证码页面报错如下: 源代码:asp.net中使用一般处理程序生成验证码 Application Exception System.ArgumentException The requested FontFamily could not be found [GDI+ status: FontFamilyNotFound] Description: HTTP 500.Error processing request. De

在ASP程序中打印Excel报表的新方法

目前,B/S模式(浏览器/服务器模式)成为企业网上首选的计算模式.由于B/S模式的特殊性,在C/S下相对较易实现的Excel报表打印功能在B/S下却成为一个难点.本人通过研究写了一个基于ASP程序的打印Excel报表的程序.本程序的特点是无须任何组件. Print.asp ------------------------------------------------ <html><title>打印Excel报表</title> <% '控制脚本语言 respon

Asp.net中导出Excel文档(Gridview)

主要思路,通过GridView来导出文档. 新建一个Aspx页面,页面创建GridView控件,后台绑定好数据源.然后load中直接打印即可导出 前台的GridView <asp:GridView ID="GridView1" BorderColor="Black" runat="server" AutoGenerateColumns="False" Font-Size="12px" Width=&q

Asp.Net中Word,Excel等office com组件操作权限的问题

近日在打开原来写的一个网页程序运行时,出现了Excel操作权限的问题,具体的说就是在代码中调用下面这段与Excel操作有关的语句时, Application curExcelApp = new ApplicationClass(); 提示权限不足,具体的提示内容如下: 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005. 说明: 执行当前 Web 请求期间,出现未处理的异常.请