从Grid导出到Excel [英] Export to excel from Grid
问题描述
大家好,
我使用以下代码将数据导出到Excel。
< pre lang =c#> table.RenderControl(htw);
// 将htmlwriter呈现为响应
响应。写( < html xmlns:x = \urn:schemas-microsoft-com:office:excel \ > 中跨度>);
Response.Write( < head>);
Response.Write( < meta http-equiv = \Content-Type \content = \ text / html的;字符集=窗口-1252\ >中跨度>);
Response.Write( <! - [if gte mso 9]>);
Response.Write( < xml>);
Response.Write( < x:ExcelWorkbook>);
Response.Write( < x:ExcelWorksheets>);
Response.Write( < x:ExcelWorksheet>);
// 此行命名工作表
Response.Write( < x:名称>应用程序详细信息< / x:名称>);
Response.Write( < x:WorksheetOptions>);
// 这两行是神奇的工作
Response.Write( < x:Panes>);
Response.Write( < / x:Panes>);
Response.Write( < / x:WorksheetOptions>);
Response.Write( < / x:ExcelWorksheet>);
// -------------------- -------------------
Response.Write( < X:ExcelWorksheet>中跨度>);
// 此行命名工作表
Response.Write( < x:名称>服务器详细信息< / x:名称>);
Response.Write( < x:WorksheetOptions>);
// 这两行是神奇的工作
Response.Write( < x:Panes>);
Response.Write( < / x:Panes>);
Response.Write( < / x:WorksheetOptions>);
Response.Write( < / x:ExcelWorksheet>);
// -------------------- ------------------------
Response.Write( < / x:ExcelWorksheets>);
Response.Write( < / x:ExcelWorkbook>);
Response.Write( < / xml>);
Response.Write( <![endif] - >);
Response.Write( < / head>);
Response.Write( < body>);
HttpContext.Current.Response.Write(sw.ToString());
Response.Write( < / body>);
Response.Write( < / html>);
Response.End();
HttpContext.Current.Response.End();
这将两张表格添加到Excel中并添加数据进入第一张表格即申请详情
我无法将数据添加到第二张表格中,即服务器详细信息。
请帮忙如果可以的话。
谢谢你可以使用下面的代码......
private void button1_Click_1( object sender,EventArgs e)
{
// 创建Excel应用程序
Microsoft.Office.Interop.Excel._Application app = new Microsoft.Office.Interop.Excel.Application();
// 在Excel应用程序中创建新的WorkBook
Microsoft.Office.Interop.Excel._Workbook workbook = app.Workbooks.Add(Type.Missing);
// 在工作簿中创建新的Excel表格
Microsoft.Office.Interop.Excel._Worksheet worksheet = null ;
// 查看该计划背后的Excel工作表
app .Visible = true ;
// 获取第一张表的参考。默认情况下,其名称为Sheet1。
// 存储其对工作表的引用
worksheet = workbook.Sheets [ Sheet1];
worksheet = workbook.ActiveSheet;
// 更改活动工作表的名称
工作表。 Name = 从gridview导出;
// 在Excel中存储标题部分
for ( int i = 1 ; i< datagridview1.columns.count + 1; i ++)>
{
worksheet.Cells [ 1 ,i] = dataGridView1.Columns [i-1] .HeaderText;
}
// 存储每一行和列值到Excel工作表
用于( int i = 0 ; i < dataGridView1.Rows.Count-1; i ++)
{
< span class =code-keyword> for ( int j = 0 ; j< datagridview1.columns.count; j ++)>
{
worksheet.Cells [i + 2 ,j + 1 ] = dataGridView1.Rows [i] .Cells [j] .Value.ToString();
}
}
// 保存应用程序
workbook.SaveAs( c:\\output.xls,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive,Type.Missing,Type.Missing,Type.Missing,Type.Missing );
// 退出应用程序
app.Quit( );
}
注意此部分代码从<获取数据 DataGridView并填充单元格。
// 将每行和每列值存储到excel表
for ( int i = 0 ; i < dataGridView1.Rows.Count-1; i ++)
{
for ( int j = 0 ; j< datagridview1.columns.count; j ++)>
{
worksheet.Cells [i + 2 ,j + 1 ] = dataGridView1.Rows [i] .Cells [j] .Value.ToString();
}
}
我已经采用了dataGridView1.Rows.Count-1,因为在datagridview中它最后包含空行。 (参见datagridview图。)
Hello everyone,
I am using following code to export data to excel.
table.RenderControl(htw);
// render the htmlwriter into the response
Response.Write("<html xmlns:x=\"urn:schemas-microsoft-com:office:excel\">");
Response.Write("<head>");
Response.Write("<meta http-equiv=\"Content-Type\" content=\"text/html;charset=windows-1252\">");
Response.Write("<!--[if gte mso 9]>");
Response.Write("<xml>");
Response.Write("<x:ExcelWorkbook>");
Response.Write("<x:ExcelWorksheets>");
Response.Write("<x:ExcelWorksheet>");
//this line names the worksheet
Response.Write("<x:Name>Application Details</x:Name>");
Response.Write("<x:WorksheetOptions>");
//these 2 lines are what works the magic
Response.Write("<x:Panes>");
Response.Write("</x:Panes>");
Response.Write("</x:WorksheetOptions>");
Response.Write("</x:ExcelWorksheet>");
// ---------------------------------------
Response.Write("<x:ExcelWorksheet>");
//this line names the worksheet
Response.Write("<x:Name>Server Details </x:Name>");
Response.Write("<x:WorksheetOptions>");
//these 2 lines are what works the magic
Response.Write("<x:Panes>");
Response.Write("</x:Panes>");
Response.Write("</x:WorksheetOptions>");
Response.Write("</x:ExcelWorksheet>");
//--------------------------------------------
Response.Write("</x:ExcelWorksheets>");
Response.Write("</x:ExcelWorkbook>");
Response.Write("</xml>");
Response.Write("<![endif]-->");
Response.Write("</head>");
Response.Write("<body>");
HttpContext.Current.Response.Write(sw.ToString());
Response.Write("</body>");
Response.Write("</html>");
Response.End();
HttpContext.Current.Response.End();
This adds two sheets into excel and add data into first sheet i.e "Application Details"
I am not able to add data into 2nd sheet i.e "Server Details".
Please help if you can.
Thanks
You Can use Belowing code.....
private void button1_Click_1(object sender, EventArgs e) { // creating Excel Application Microsoft.Office.Interop.Excel._Application app = new Microsoft.Office.Interop.Excel.Application(); // creating new WorkBook within Excel application Microsoft.Office.Interop.Excel._Workbook workbook = app.Workbooks.Add(Type.Missing); // creating new Excelsheet in workbook Microsoft.Office.Interop.Excel._Worksheet worksheet = null; // see the excel sheet behind the program app.Visible = true; // get the reference of first sheet. By default its name is Sheet1. // store its reference to worksheet worksheet = workbook.Sheets["Sheet1"]; worksheet = workbook.ActiveSheet; // changing the name of active sheet worksheet.Name = "Exported from gridview"; // storing header part in Excel for(int i=1;i<datagridview1.columns.count+1;i++)> { worksheet.Cells[1, i] = dataGridView1.Columns[i-1].HeaderText; } // storing Each row and column value to excel sheet for (int i=0; i < dataGridView1.Rows.Count-1 ; i++) { for(int j=0;j<datagridview1.columns.count;j++)> { worksheet.Cells[i + 2, j + 1] = dataGridView1.Rows[i].Cells[j].Value.ToString(); } } // save the application workbook.SaveAs("c:\\output.xls",Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive , Type.Missing, Type.Missing, Type.Missing, Type.Missing); // Exit from the application app.Quit(); } Note this part of code gets data from DataGridView and fills cells. // storing Each row and column value to excel sheet for (int i=0; i < dataGridView1.Rows.Count-1 ; i++) { for(int j=0;j<datagridview1.columns.count;j++)> { worksheet.Cells[i + 2, j + 1] = dataGridView1.Rows[i].Cells[j].Value.ToString(); } }
I have taken dataGridView1.Rows.Count-1, because in datagridview it contains empty row at the last. (See in the figure of datagridview.)
这篇关于从Grid导出到Excel的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!