当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > asp.net(C#)操作excel(上路篇)

ASP.NET
ASP.NET开发:简化应用程序的开发支持Web标准
asp.net XMLHttpRequest实现用户注册前的验证
asp.net 页面间传值方法小结
asp.net url重写浅谈
asp.net 验证码生成和刷新及验证
C#精髓 GridView72大绝技 学习gridview的朋友必看
实例说明asp.net中的简单角色权限控制
asp.net网站开发包wq.dll打包下载
js与ASP.NET 中文乱码问题
asp.net checkbox 动态绑定id GridView删除提示
asp.net TextBox回车触发事件 图片在img显示
asp.net 脏字典过滤问题 用正则表达式来过滤脏数据
asp.NET 脏字过滤算法
asp.NET 脏字过滤算法 修改版
asp.net sql 数据库处理函数命令
asp.net Javascript 的几种写法与提示
ASP.NET MVC学习笔记
asp.net 中国身份证号码验证代码 非正则
Asp.net中使用Sqlite数据库的方法
asp.net 中文字符串提交乱码的解决方法

ASP.NET 中的 asp.net(C#)操作excel(上路篇)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-02-27   浏览: 127 ::
收藏到网摘: n/a

C#操作excel(上路篇) 1.作业环境

开发环境:vs2005 /vs2008
数据库:sql2005

excel:2003
首先
vs加入com組件(当然也可以加入.net下的excel组件):
之后vs引用子目录会多出下面三个dll:
简单操作流程如下:
复制代码 代码如下:

using Excel;
// from bill example
public void writeExcelAdvance(String outputFile)
{
string[,] myData =
{
{ "车牌号", "类型", "品 牌", "型 号", "颜 色", "附加费证号", "车架号" },
{ "浙KA3676", "危险品", "货车", "铁风SZG9220YY", "白", "1110708900", "022836" },
{ "浙KA4109", "危险品", "货车", "解放CA4110P1K2", "白", "223132", "010898" },
{ "浙KA0001A", "危险品", "货车", "南明LSY9190WS", "白", "1110205458", "0474636" },
{ "浙KA0493", "上普货", "货车", "解放LSY9190WS", "白", "1110255971", "0094327" },
{ "浙KA1045", "普货", "货车", "解放LSY9171WCD", "蓝", "1110391226", "0516003" },
{ "浙KA1313", "普货", "货车", "解放9190WCD", "蓝", "1110315027", "0538701" },
{ "浙KA1322", "普货", "货车", "解放LSY9190WS", "蓝", "24323332", "0538716" },
{ "浙KA1575", "普货", "货车", "解放LSY9181WCD", "蓝", "1110314149", "0113018" },
{ "浙KA1925", "普货", "货车", "解放LSY9220WCD", "蓝", "1110390626", "00268729" },
{ "浙KA2258", "普货", "货车", "解放LSY9220WSP", "蓝", "111048152", "00320" }
};
//引用Excel Application类别
Application myExcel = null;
//引用活页簿类别
Workbook myBook = null;
//引用工作表类别
Worksheet mySheet = null;
//引用Range类别
Range myRange = null;
//开启一个新的应用程式
myExcel = new Microsoft.Office.Interop.Excel.Application();
//打开一个已经存在的excel excel2003和2007版打开参数不一样,具体可以上网上去查:
//excelSql.Workbooks.Open(@"C:\08.xls"(已经存在的excel路径), Type.Missing, Type.Missing, Type.Missing, Type.Missing,
//Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,Type.Missing,Type.Missing);
//加入新的活页簿
myExcel.Workbooks.Add(true);
//停用警告讯息
myExcel.DisplayAlerts = false;
//让Excel文件可见
myExcel.Visible = true;
//引用第一个活页簿
myBook = myExcel.Workbooks[1];
//设定活页簿焦点
myBook.Activate();
//引用第一个工作表
mySheet = (Worksheet)myBook.Worksheets[1];
//命名工作表的名称为 "Array"
mySheet.Name = "Cells";
//设工作表焦点
mySheet.Activate();
int a = 0;
int UpBound1 = myData.GetUpperBound(0);
//二维阵列数上限
int UpBound2 = myData.GetUpperBound(1);
//二维阵列数上限
//写入报表名称
myExcel.Cells[1, 4] = "普通报表";
//以下的Select方法可省略,加速Excel运行,但VBA有些功能必须要用到Select方法。
//以下的Select方法可省略,加速Excel运行,但VBA有些功能必须要用到Select方法。
//逐行写入数据
for (int i = 0; i < UpBound1; i++)
{
for (int j = 0; j < UpBound2; j++)
{
//以单引号开头,表示该单元格为纯文字
a++;
//用offset写入阵列资料
myRange = mySheet.get_Range("A2", Type.Missing);
myRange.get_Offset(i, j).Select();
myRange.Value2 = "'" + myData[i, j];
//用Cells写入阵列资料
myRange.get_Range(myExcel.Cells[2 + i, 1 + j], myExcel.Cells[2 + i, 1 + j]).Select();
myExcel.Cells[2 + i, 1 + j] = "'" + myData[i, j];
}
}
//加入新的工作表在第1张工作表之后
myBook.Sheets.Add(Type.Missing, myBook.Worksheets[1], 1, Type.Missing);
//引用第2个工作表
mySheet = (Worksheet)myBook.Worksheets[2];
//命名工作表的名称为 "Array"
mySheet.Name = "Array";
//Console.WriteLine(mySheet.Name);
//写入报表名称
myExcel.Cells[1, 4] = "普通报表";
//设定范围
myRange = (Range)mySheet.get_Range(myExcel.Cells[2, 1], myExcel.Cells[UpBound1 + 1, UpBound2 + 1]);
myRange.Select();
//用阵列一次写入资料
myRange.Value2 = "'" + myData;
//设定储存路径
//string PathFile = Directory.GetCurrentDirectory() + @"\button4.xls";
//另存活页簿
myBook.SaveAs(outputFile, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing
, XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
//关闭活页簿
myBook.Close(false, Type.Missing, Type.Missing);
//关闭Excel
myExcel.Quit();
//释放Excel资源
System.Runtime.InteropServices.Marshal.ReleaseComObject(myExcel);
myBook = null;
mySheet = null;
myRange = null;
myExcel = null;
GC.Collect();