有人可以提供一个链接,教程是关于在asp.net web应用程序中使用c#将数据导出到excel文件。我搜索了互联网,但我找不到任何可以解释他们如何做的教程。
答案 0 :(得分:1)
有一种简单的方法可以使用npoi.mapper只有2行
var mapper = new Mapper();
mapper.Save("test.xlsx", objects, "newSheet");
答案 1 :(得分:1)
将列表传递给下面的方法,将列表转换为缓冲区,然后返回缓冲区,下载文件。
List<T> resultList = New List<T>();
byte[] buffer = Write(resultList, true, "AttendenceSummary");
return File(buffer, "application/excel", reportTitle + ".xlsx");
public static byte[] Write<T>(IEnumerable<T> list, bool xlsxExtension = true, string sheetName = "ExportData")
{
if (list == null)
{
throw new ArgumentNullException("list");
}
XSSFWorkbook hssfworkbook = new XSSFWorkbook();
int Rowspersheet = 15000;
int TotalRows = list.Count();
int TotalSheets = TotalRows / Rowspersheet;
for (int i = 0; i <= TotalSheets; i++)
{
ISheet sheet1 = hssfworkbook.CreateSheet(sheetName + "_" + i);
IRow row = sheet1.CreateRow(0);
int index = 0;
foreach (PropertyInfo property in typeof(T).GetProperties())
{
ICellStyle cellStyle = hssfworkbook.CreateCellStyle();
IFont cellFont = hssfworkbook.CreateFont();
cellFont.Boldweight = (short)NPOI.SS.UserModel.FontBoldWeight.Bold;
cellStyle.SetFont(cellFont);
ICell cell = row.CreateCell(index++);
cell.CellStyle = cellStyle;
cell.SetCellValue(property.Name);
}
int rowIndex = 1;
// int rowIndex2 = 1;
foreach (T obj in list.Skip(Rowspersheet * i).Take(Rowspersheet))
{
row = sheet1.CreateRow(rowIndex++);
index = 0;
foreach (PropertyInfo property in typeof(T).GetProperties())
{
ICell cell = row.CreateCell(index++);
cell.SetCellValue(Convert.ToString(property.GetValue(obj)));
}
}
}
MemoryStream file = new MemoryStream();
hssfworkbook.Write(file);
return file.ToArray();
}
答案 2 :(得分:0)
或者,如果您不想在Web服务器上安装Microsoft Office
我建议使用CarlosAg.ExcelXmlWriter
,可在此处找到:http://www.carlosag.net/tools/excelxmlwriter/
ExcelXmlWriter的代码示例:
using CarlosAg.ExcelXmlWriter;
class TestApp {
static void Main(string[] args) {
Workbook book = new Workbook();
Worksheet sheet = book.Worksheets.Add("Sample");
WorksheetRow row = sheet.Table.Rows.Add();
row.Cells.Add("Hello World");
book.Save(@"c:\test.xls");
}
}
答案 3 :(得分:0)
您可以尝试以下链接:
http://www.codeproject.com/Articles/164582/8-Solutions-to-Export-Data-to-Excel-for-ASP-NET
答案 4 :(得分:0)
我写了一个C#类,它允许你编写你的DataSet,DataTable或List&lt;&gt;使用OpenXML库将数据直接导入Excel .xlsx文件。
http://www.mikesknowledgebase.com/pages/CSharp/ExportToExcel.htm
完全免费下载,非常 ASP.Net友好。
只需传递我的C#函数要写入的数据,要创建的文件的名称,以及页面的“响应”变量,它将为您创建Excel文件,并将其直接写入页面,为用户准备好保存/打开。
class Employee;
List<Employee> listOfEmployees = new List<Employee>();
// The following ASP.Net code gets run when I click on my "Export to Excel" button.
protected void btnExportToExcel_Click(object sender, EventArgs e)
{
// It doesn't get much easier than this...
CreateExcelFile.CreateExcelDocument(listOfEmployees, "Employees.xlsx", Response);
}
(我为一家金融公司工作,我们在每个应用程序中都没有这个功能而迷失了!)