첫 번째 EPPLUS 참조 라이브러리를 응용 프로그램에 추가하고 OfficeOpenXml을 사용하여 추가합니다.
// 비즈니스 오브젝트 클래스
클래스 bocls {
string name;
public string NAME
{
get { return name; }
set { name = value; }
}
string id;
public string ID
{
get { return id; }
set { id = value; }
}
public bocls() { }
public bocls(string name, string id)
{
this.name = name;
this.id = id;
}
// 수출 버튼 클릭 이벤트에
보호 무효 lbtnExport_Click (개체 보낸 사람, EventArgs입니다 전자) {
List<bocls> list6 = new List<bocls>();
//copy the grid view values into list
list6 = (from row in dataGridView1.Rows.Cast<DataGridViewRow>()
from cell in row.Cells.Cast<DataGridViewCell>()
select new
{
//project into your new class from the row and cell vars.
}).ToList();
}
ExcelPackage excel = new ExcelPackage();
var workSheet = excel.Workbook.Worksheets.Add("Products");
var totalCols = GridView1.Rows[0].Cells.Count;
var totalRows = GridView1.Rows.Count;
var headerRow = GridView1.HeaderRow;
for (var i = 1; i <= totalCols; i++)
{
workSheet.Cells[1, i].Value = headerRow.Cells[i - 1].Text;
}
for (var j = 1; j <= totalRows; j++)
{
for (var i = 1; i <= totalCols; i++)
{
var item = list6.ElementAt(j - 1);
workSheet.Column(1).Width = 13;
workSheet.Column(2).Width = 10;
workSheet.Cells[j + 1, i].Style.WrapText = true;
if (headerRow.Cells[i - 1].Text == "ID")
workSheet.Cells[j + 1, i].Value = item.GetType().GetProperty("id").GetValue(item, null);
else if (headerRow.Cells[i - 1].Text == "NAME")
workSheet.Cells[j + 1, i].Value = item.GetType().GetProperty("name").GetValue(item, null);
workSheet.Cells[j + 1, i].Value = workSheet.Cells[j + 1, i].Value.ToString().Replace("<br/>", "");
}
}
using (var memoryStream = new MemoryStream())
{
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
string filename = Guid.NewGuid().ToString() + ".xlsx";
Response.AddHeader("content-disposition", "attachment; filename=" + filename);
excel.SaveAs(memoryStream);
//add your destination folder
FileStream fileStream = new FileStream(@"C:\Users\karthi\Downloads\New folder\" + filename, FileMode.Create,FileAccess.Write,FileShare.Write);
memoryStream.WriteTo(fileStream);
fileStream.Close();
memoryStream.WriteTo(Response.OutputStream);
memoryStream.Close();
memoryStream.WriteTo(Response.OutputStream);
Response.Flush();
Response.End();
}
}
당신은 당신이 파일하지만 HTML 테이블을 Excel? Excel은 그것을 해석 할 수 있습니다. 어쨌든 실제 Excel 파일이 아닙니다. [EPPLus] (http://epplus.codeplex.com/releases/view/42439)를보십시오. –
Tim은 EPPlus를 사용한다고 말합니다 - 실제 .xlsx 파일을 생성하는 라이브러리이며 대신 다운로드 할 수 있습니다. 나는 예산 모니터링 애플 리케이션을 위해 그것을 사용했고 그것은 훌륭합니다. – markp3rry
그리드보기의 데이터 소스 란 무엇입니까? –