• 欢迎访问起航教学!
当前位置:起航教学资源网范文写作电脑学习办公技巧导出Excel的四种方法

导出Excel的四种方法

12-14 18:36:14   分类:办公技巧   浏览次数: 466
标签:办公技巧大全,http://www.qihang56.com 导出Excel的四种方法,

据我现在所知excel有四种方法:

1.自己写的excel接口,客户端不需要装excel

2.把web上的DataGrid直接导入到excel

以下是代码片段:

public void ExportToExcel(System.Web.UI.Control ctl)

{

bool CurrCtlVisible=ctl.Visible;

ctl.Visible=true; Response.AppendHeader("Content-Disposition","attachment;filename=Excel.xls");

Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");

Response.ContentType = "application/ms-excel";

ctl.Page.EnableViewState = false;

System.IO.StringWriter tw = new System.IO.StringWriter();

System.Web.UI.HtmlTextWriter hw = new HtmlTextWriter(tw);

ctl.RenderControl(hw);

Response.Write(tw.ToString());

Response.End();

ctl.Page.EnableViewState = true;

ctl.Visible=CurrCtlVisible;

}

 

3.在引用里调用Microsoft.Office.Interop.Excel.dll,原理是把数据存到DataTable、DataView或DataGrid中,然后再把数据一格一格的赋到excel的cell里去。

见如下代码:

 

以下是代码片段:

public class ExportToExcel

{

私有成员#region 私有成员

// 数据的DataView

private DataView dv=null;

// 表格标题

private string title=null;

// 输出文件路径

private string outFilePath=null;

// 输入文件名

private string inputFilePath=System.Windows.Forms.Application.StartupPath+@" emplate.xls";

#endregion

公共属性#region 公共属性

/**////

/// 数据的DataView

///

public DataView DV

{

set

{

dv=value;

}

}

/**////

/// 表格标题

///

public string Title

{

set

{

title=value;

}

get

{

return title;

}

}

/**////

/// 输出文件路径

///

public string OutFilePath

{

set

{

outFilePath=value;

}

get

{

return outFilePath;

}

}

/**////

/// 输入文件路径

///

private string InputFilePath

{

set

{

inputFilePath=value;

}

get

{

return inputFilePath;

}

}

#endregion

构造函数#region 构造函数

public ExportToExcel()

{

}

// public OutputExcel(DataView dv,string title)

// {

//

// }

#endregion

公共方法#region 公共方法

/**///

public void CreateExcel()

{

int rowIndex=4;//行起始坐标

int colIndex=1;//列起始坐标

ApplicationClass myApp=null;

Workbook myBook=null;

Worksheet mySheet=null;

//如果文件不存在,则将模板文件拷贝一份作为输出文件

if(!File.Exists(outFilePath))

{

File.Copy(inputFilePath,outFilePath,true);

}

myApp= new ApplicationClass();

myApp.Visible=false;

object oMissiong=System.Reflection.Missing.Value;

myApp.Workbooks.Open(outFilePath,oMissiong,oMissiong,oMissiong,oMissiong,

oMissiong,oMissiong,oMissiong,oMissiong,oMissiong,oMissiong,oMissiong,

oMissiong,oMissiong,oMissiong);

myBook=myApp.Workbooks[1];

mySheet=(Worksheet)myBook.ActiveSheet;

//取得标题

foreach(DataColumn col in dv.Table.Columns)

{

colIndex++;

mySheet.Cells[4,colIndex] = col.ColumnName;

mySheet.get_Range(mySheet.Cells[4,colIndex],mySheet.Cells[4,colIndex]).HorizontalAlignment = XlVAlign.xlVAlignCenter;//设置标题格式为居中对齐

}

//取得表格中的数据

foreach(DataRowView row in dv)

{

rowIndex ++;

colIndex = 1;

foreach(DataColumn col in dv.Table.Columns)

{

colIndex ++;

if(col.DataType == System.Type.GetType("System.DateTime"))

{

mySheet.Cells[rowIndex,colIndex] = (Convert.ToDateTime(row[col.ColumnName].ToString())).ToString("yyyy-MM-dd");

mySheet.get_Range(mySheet.Cells[rowIndex,colIndex],mySheet.Cells[rowIndex,colIndex]).HorizontalAlignment = XlVAlign.xlVAlignCenter;//设置日期型的字段格式为居中对齐

}

else if(col.DataType == System.Type.GetType("System.String"))

{

mySheet.Cells[rowIndex,colIndex] = "'"+row[col.ColumnName].ToString();

mySheet.get_Range(mySheet.Cells[rowIndex,colIndex],mySheet.Cells[rowIndex,colIndex]).HorizontalAlignment = XlVAlign.xlVAlignCenter;//设置字符型的字段格式为居中对齐

}

else

{

mySheet.Cells[rowIndex,colIndex] = row[col.ColumnName].ToString();

}

}

}

//加载一个合计行

int rowSum = rowIndex + 1;

int colSum = 2;

mySheet.Cells[rowSum,2] = "合计";

mySheet.get_Range(mySheet.Cells[rowSum,2],mySheet.Cells[rowSum,2]).HorizontalAlignment = XlHAlign.xlHAlignCenter;

//设置选中的部分的颜色

mySheet.get_Range(mySheet.Cells[rowSum,colSum],mySheet.Cells[rowSum,colIndex]).Select();

mySheet.get_Range(mySheet.Cells[rowSum,colSum],mySheet.Cells[rowSum,colIndex]).Interior.ColorIndex = 19;//设置为浅黄色,共计有56种

[1] [2]  下一页

相关热词搜索:

分享到: 收藏
评论排行