Asp.net中操作Excel的代码解析
一 . 使用Excel对象模型创建Excel文档:
1.创建简单的文档
try
{
3 //创建Excel程序对象
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
//设置创建WorkBook时,WorkBook包含表单个数
excel.SheetsInNewWorkbook = ;
//创建WorkBook
excel.Workbooks.Add(); //创建第一个工作表
Worksheet sheet = excel.ActiveWorkbook.Sheets[];
//Worksheet sheet = (Worksheet)excel.ActiveWorkbook.Worksheets[1]; //给工作表设置名称
sheet.Name = "Student";
sheet.Cells[, ] = txtName.Text;
sheet.Cells[, ] = txtAge.Text;
sheet.Cells[, ] = txtHabit.Text; //显示Excel
excel.Visible = true;
//现场休眠2000毫秒
System.Threading.Thread.Sleep(); //保存当前活动的WorkBook
excel.ActiveWorkbook.SaveAs(
//Environment.CurrentDirectory + "/test.xls",//文件名
"f:/test.xls",
XlFileFormat.xlWorkbookNormal //保存文件的格式
); //关闭当前活动的WorkBook
excel.ActiveWorkbook.Close();
//退出Excel应用程序
excel.Quit();
}
catch (Exception ex)
{ throw new Exception(ex.Message);
}
2.设置文档格式
//设置字体样式
Range ranRow = sheet.Range[sheet.Cells[, ], sheet.Cells[, ]];
ranRow.Font.Bold = true;//字体加粗
ranRow.Font.Color = Color.SeaGreen;//字体颜色
//单元格操作
ranRow.HorizontalAlignment=XlHAlign.xlHAlignCenter;//对齐方式
ranRow .Interior.Color = Color.SeaGreen;//内边框样式
range.MergeCells = true;//合并单元格
//边框样式:
ranBorder.BorderAround(XlLineStyle.xlContinuous, XlBorderWeight.xlThick);//区域外边框样式
range.Borders.LineStyle = XlLineStyle.xlDouble;//内边框样式
//设置身份证号码,日期显示格式
range.NumberFormat = "";
range.NumberFormatLocal = "yyyy-m-d";
二. 使用对象模型导出DataGridView数据到Excel文档
1.直接在窗体设计界面代码使用DataGridView作为数据源,直接使用显示出来的值填充Excel表格。
2.将DataGridView作为参数,传递到公共类中,需要在公共类中添加并导入 using System.Windows.Forms;
三. 导入Excel文档到DataTable中
//创建Datatable对象,并添加列
System.Data.DataTable dt = new System.Data.DataTable();
for (int i = ; i < ; i++)
{
dt.Columns.Add(new DataColumn());
} Worksheet sheet = null;
foreach (Worksheet sh in excel.ActiveWorkbook.Worksheets)
{
if (sh.Name == "Sheet1")
{
sheet = sh;
}
if (sheet != null)
{
int r = ;
while (true)
{
Range rName = sheet.Cells[r, ] as Range;
if (rName.Text.ToString().Trim().Length == )
{
break;
}
DataRow row = dt.NewRow(); for (int i = ; i < ; i++)
{
row[i] = sheet.Cells[r, i + ].Text; }
dt.Rows.Add(row);
r++;
}
}
}
四. 使用ADO.NET导入Excel内容
//连接字符串
string conStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='E:/N-Tier/Lesson8/学生基本信息.xls';Extended Properties='Excel 8.0;HDR=YES;IMEX=1'";
string sql = string.Format("select * from [{0}$]", "Sheet1");
DataTable dt = new DataTable();
using (OleDbConnection con = new OleDbConnection(conStr))
{
con.Open();
OleDbDataAdapter odda = new OleDbDataAdapter(sql, con);
odda.Fill(dt);
}
return dt;
Asp.net中操作Excel的代码解析的更多相关文章
- C#开发中使用Npoi操作excel实例代码
C#开发中使用Npoi操作excel实例代码 出处:西西整理 作者:西西 日期:2012/11/16 9:35:50 [大 中 小] 评论: 0 | 我要发表看法 Npoi 是什么? 1.整个Exce ...
- j2e中操作EXCEL
在j2e中操作excel,无非2种情况,在这里我贴部分代码做个例子就OK,不管是导入和导出都是操作的都是流 1,导入,浏览器输入EXCEL到java后台解析 package action; impor ...
- asp.net中导出Excel的方法
一.asp.net中导出Excel的方法: 本文转载 在asp.net中导出Excel有两种方法,一种是将导出的文件存放在服务器某个文件夹下面,然后将文件地址输出在浏览器上:一种是将文件直接将文件输出 ...
- ASP.net中导出Excel的简单方法介绍
下面介绍一种ASP.net中导出Excel的简单方法 先上代码:前台代码如下(这是自己项目里面写的一点代码先贴出来吧) <div id="export" runat=&quo ...
- 【译】在Asp.Net中操作PDF - iTextSharp - 利用列进行排版
原文 [译]在Asp.Net中操作PDF - iTextSharp - 利用列进行排版 在使用iTextSharp通过ASP.Net生成PDF的系列文章中,前面的文章已经讲述了iTextSharp所涵 ...
- 【译】在Asp.Net中操作PDF - iTextSharp - 绘制矢量图
原文 [译]在Asp.Net中操作PDF - iTextSharp - 绘制矢量图 在上一篇iTextSharp文章中讲述了如何将现有的图片插入PDF中并对其进行操作.但有时,你需要在PDF中绘制不依 ...
- 【译】在Asp.Net中操作PDF – iTextSharp - 操作图片
原文 [译]在Asp.Net中操作PDF – iTextSharp - 操作图片 作为我的iTextSharp系列的文章的第七篇,开始探索使用iTextSharp在PDF中操作图片,理解本篇文章需要看 ...
- 【译】在Asp.Net中操作PDF – iTextSharp - 使用表格
原文 [译]在Asp.Net中操作PDF – iTextSharp - 使用表格 使用Asp.Net生成PDF最常用的元素应该是表格,表格可以帮助比如订单或者发票类型的文档更加格式化和美观.本篇文章并 ...
- 【译】在Asp.Net中操作PDF – iTextSharp - 使用链接和书签
原文 [译]在Asp.Net中操作PDF – iTextSharp - 使用链接和书签 用户和PDF文档的交互可以通过锚(链接)和书签进行,接着我前面iTextSharp的系列文章,本篇文章主要讲通过 ...
随机推荐
- 杂项:Juice UI
ylbtech-杂项:Juice UI Juice UI是开源的 WebForms 控件集,是一个功能强大的框架,它可以给ASP .NET开发人员带来丰富的.可以作为易于使用的控件的jQuery UI ...
- Missing Number @leetcode
Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one that is missin ...
- [UE4]Acotr
任何能被放在关卡中的对象都是Actor Tick是每帧都会调用的事件
- [UE4]集合:TSet容器
一.TSet<T>是什么 UE4中,除了TArray动态数组外,还提供了各种各样的模板容器.这一节,我们就介绍集合容器——TSet<T>.类似于TArray<T>, ...
- Storm集成Kafka的Trident实现
原本打算将storm直接与flume直连,发现相应组件支持比较弱,topology任务对应的supervisor也不一定在哪个节点上,只能采用统一的分布式消息服务Kafka. 原本打算将结构设 ...
- 学大伟业Day1解题报告
学大伟业Day1解题报告 张炳琪 一. 时间分配 T1:30分钟 T2: 60分钟 T3:100分钟 二.答题情况及错因 T1:100 T2:55 T3 ...
- 3.4 SpringBoot发送邮件
spring官方提供了spring-boot-starter-mail来整合邮件发送功能,本质上还是利用了JavaMailSender类. 首先我们要在项目中引入相关依赖 <parent & ...
- Sender 转换TButtonItem TCategoryButtons
http://codeverge.com/embarcadero.cppbuilder.using/using-sender-to-determine-which/1068317 http://qc. ...
- 安装设置IIS5.1
1.防止不停提示无法复制staxmem.dll: esentutl /p %windir%/security/database/secedit.sdb提示数据库损坏,是否恢复,选是,出现以下提示后退出 ...
- vue-cli 上手
1.cnpm install --global vue-cli 安装脚手架 2.vue init webpack baoge 创建 3.选择配置项 Project name (baoge): ---- ...