Junto con saludarlos, recurro a ustedes porque estoy creando pequeño proyecto en asp.net - C#, el cual consiste en exportar datos a excel, de momento solo quiero exportar datos a modo de ejemplo a una planilla y ver los resultados, más adelante pretendo obtener los registros desde una base de datos, pero primero necesito realizar esto...
Bueno, este código lo saque de otro sitio web, la cual pueden ver aqui:
http://forums.asp.net/t/1888756.aspx
Estoy corriendolo en Visual Studio 2012 y el error que me arroja al compilar es el siguiente:
Código error:
Ver originalCompilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: CS0246: The type or namespace name 'DataTable' could not be found (are you missing a using directive or an assembly reference?)
Source Error:
Line 8: public partial class ExportToExcel : System.Web.UI.Page
Line 9: {
Line 10: public void ExportToExcelFile(DataTable dt)
Line 11: {
Line 12: Response.Clear();
estuve averiguando por internet y las posibles soluciones apuntan a que no estoy referenciando correctamente, pero ya hice el ejercicio de referenciar todas las opciones y me sigue arrojando el mismo error...
qué estoy haciendo mal o que me falta??
Código C++:
Ver originalusing System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Test_Web
{
public partial class ExportToExcel : System.Web.UI.Page
{
public void ExportToExcelFile(DataTable dt)
{
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.Buffer = true;
Response.ContentType = "application/vnd.ms-excel";
Response.Write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">");
Response.AddHeader("content-disposition", "attachment;filename=PolicyClaimDetail.xls");
Response.ContentEncoding = Encoding.UTF8;
Response.Charset = "";
EnableViewState = false;
//Set Fonts
Response.Write("<font style='font-size:10.0pt; font-family:Calibri;'>");
Response.Write("<BR><BR><BR>");
//Sets the table border, cell spacing, border color, font of the text, background,
//foreground, font height
Response.Write("<Table border='1' bgColor='#ffffff' borderColor='#000000' cellSpacing='0' cellPadding='0' style='font-size:10.0pt; font-family:Calibri; background:white;'> <TR>");
// Check not to increase number of records more than 65k according to excel,03
if (dt.Rows.Count <= 65536)
{
// Get DataTable Column's Header
foreach (DataColumn column in dt.Columns)
{
//Write in new column
Response.Write("<Td>");
//Get column headers and make it as bold in excel columns
Response.Write("<B>");
Response.Write(column);
Response.Write("</B>");
Response.Write("</Td>");
}
Response.Write("</TR>");
// Get DataTable Column's Row
foreach (DataRow dtRow in dt.Rows)
{
//Write in new row
Response.Write("<TR>");
for (int i = 0; i <= dt.Columns.Count - 1; i++)
{
Response.Write("<Td>");
Response.Write(dtRow[i].ToString());
Response.Write("</Td>");
}
Response.Write("</TR>");
}
}
Response.Write("</Table>");
Response.Write("</font>");
Response.Flush();
Response.End();
}
protected void btnExport_Click(object sender, EventArgs e)
{
var dataTable = new DataTable();
dataTable.Columns.Add("ID");
dataTable.Columns.Add("Name");
dataTable.Columns.Add("Country");
dataTable.Columns.Add("City");
dataTable.Rows.Add("1", "Micheal", "USA", "Washington");
dataTable.Rows.Add("2", "Smith", "UK", "London");
dataTable.Rows.Add("3", "Martin", "AUS", "Sydney");
if (dataTable.Rows.Count > 0)
{
this.ExportToExcelFile(dataTable);
}
}
}
}
Desde ya muchas gracias por el tiempo
Estaré atento a cualquier respuesta!,
saludos!!