我想实现形式:
第一行 统计信息
第二行开始是详细数据比如A班就1名同学 B班有2名同学 合计有3名同学ID 姓名 班级
1 小明 B
2 小华 A
3 小美 B
第一行 统计信息
第二行开始是详细数据比如A班就1名同学 B班有2名同学 合计有3名同学ID 姓名 班级
1 小明 B
2 小华 A
3 小美 B
解决方案 »
- 如何在gridView中editItemTemplate的dropdownlist实现数据绑定 ?? 最好用vb实现
- 新手问题,关于Button提交
- 截取html字符的问题
- 有这样的正则表达试吗?
- 各位这是什么意思啊,提交的时候。“从客户端(txtContent="<body ms_positioning...")中检测到有潜在危险的 Request.Form 值。 ”
- 这个BUG让我对.NET失望极了
- 错误: System.Exception: Exception decrypting. Decryption failed. 该项不适于在指定状态下使用!!!!
- winfrom 水晶报表急需问题,报错了。。。。
- vs2005,treeview控件展开后选择一个节点后,又全部折叠回根节点,要重新展开。
- 怎样把硬盘上的图片存进SQL数据库
- 有关正则表达式
- reflector的使用问题,求高手!
1 小明 B
2 小华 A
3 小美 B
如果是select * from students where class='B'导出的excel结果如下:B班有2名同学ID 姓名 班级
1 小明 B
3 小美 B
protected void Button2_Click(object sender, EventArgs e)
{
Response.Redirect("Export.aspx?search=" + txtSearch.Text);
}Export.aspx
获取一个DataTable,
在前台的DIV里直循环DataTable:
<div runat="server" id="excelDiv">
<table>
</div>
后台:
if (!IsPostBack)
{
Export("报表");
} private void Export(string fileName)
{
Response.Clear();
Response.AddHeader("content-disposition", "attachment;filename=" + fileName + ".xls");
Response.Charset = "GB2312";
Response.ContentType = "application/vnd.xls";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
excelDiv.RenderControl(htmlWrite);
Response.Write(stringWrite.ToString());
Response.End();
}
/// <summary>
/// 打开指定的 Excel 文件,并返回 工作博;
/// </summary>
/// <param name="filepath"></param>
/// <returns></returns>
public static Excel.Workbook openExcelFile(string filepath)
{
Excel.Application excel = new Excel.ApplicationClass();
excel.Visible = false;
excel.DisplayAlerts = false;
Excel.Workbooks workbooks = excel.Workbooks;
Excel.Workbook workbook=workbooks.Open(filepath,Missing.Value,true,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value);
return workbook;
} /// <summary>
/// COPY 部分表格数据到 Sheet 中; 6个参数分别表示 目的Sheet, 数据, 开始copy的数据行(0开始), 开始copy的数据列(0开始),
/// copy的数据行数目,copy的数据列数目,sheet的数据行位置(1开始),sheet的数据列位置(1开始),
///
/// </summary>
public static void copyrowdata(Excel.Worksheet sheet, System.Data.DataTable dt, int beginrow, int begincol,
int copyrowcount, int copycolcount, int beginsheetrow, int beginsheetcol, ICopySheetDataHandle aHandle)
{
int asheetcol = beginsheetcol;
for (int row=beginrow;row<beginrow+copyrowcount;row++)
{
for (int col = begincol; col<begincol+copycolcount;col++)
{
sheet.Cells[beginsheetrow, asheetcol] = dt.Rows[row][col].ToString();
if (aHandle!=null) aHandle.handleSheet( dt, row, col, sheet, beginsheetrow, asheetcol);
asheetcol ++;
}
beginsheetrow++;
asheetcol = beginsheetcol;
}
}
/// <summary>
/// 输出到EXCEL
/// </summary>
private static void OpToExcel(string filepath,string oppath,System.Data.DataSet ads)
{
Excel.Workbook wb = openExcelFile(filepath);
DataSet ds = ads;
for(int j=0;j<8;j++)
{
xlsdt = ds.Tables[0];
Excel.Worksheet st =wb.Sheets[j+1] as Excel.Worksheet;// (Excel.Worksheet)wb.Sheets.Add(System.Reflection.Missing.Value,System.Reflection.Missing.Value,System.Reflection.Missing.Value,System.Reflection.Missing.Value);
copyrowdata(st,xlsdt,0,0,xlsdt.Rows.Count,xlsdt.Columns.Count,2,1);
}
try
{
foreach (Process a in (Process.GetProcessesByName(program)))
{
try { a.Kill(); }
catch(Exception ee) { }
}
}
catch(Exception xx) { }
}
{
int Id=0;
string Name="测试";
string FileName="F:\\Temp.xls";
System.Data.DataTable dt=你的记录集;
OleDbParameter[] parm=new OleDbParameter[dt.Columns.Count];
string connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FileName +";Extended Properties=Excel 8.0;";
OleDbConnection objConn = new OleDbConnection(connString);
OleDbCommand objCmd = new OleDbCommand();
objCmd.Connection = objConn;
objConn.Open();
//建立表结构
objCmd.CommandText = @"CREATE TABLE Sheet1(ID,integer,姓名 varchar,班级 varchar)";
objCmd.ExecuteNonQuery();
//建立插入动作的Command
objCmd.CommandText = "INSERT INTO Sheet1("+Id+","+Name+","+Grade+")";
parm[0]=new OleDbParameter("@Id", OleDbType.Integer);
objCmd.Parameters.Add(parm[0]);
parm[1]=new OleDbParameter("@Name", OleDbType.VarChar);
objCmd.Parameters.Add(parm[1]);
parm[2]=new OleDbParameter("@Grade", OleDbType.VarChar);
objCmd.Parameters.Add(parm[2]); //遍历DataTable将数据插入新建的Excel文件中
for(int i=0;i<dt.Rows.Count;i++)
{
parm[0].Value=i+1;
for(int j=1;j<parm.Length;j++)
{
parm[j].Value =dt.Rows[i][j];
}
objCmd.ExecuteNonQuery();
}
objConn.Close();
}
写错了
@"CREATE TABLE Sheet1(ID integer,姓名 varchar,班级 varchar)";