将多个表导出到单独的Excel选项卡中

时间:2014-07-03 17:42:36

标签: asp.net export-to-excel

我们有两个不同的表格。

表:CategoryProduct

现在我们需要导入Category Excel文件中的Sheet 1表格数据和Product中的Sheet 2详细信息。

有没有参考?

1 个答案:

答案 0 :(得分:1)

您可以使用EasyXLS Excel库。

使用此代码将表数据插入多个表格中:

DataSet dataSetCategory = ...//extract Category table details from database
DataSet dataSetProduct = ...//extract Product table details from database

//Create an Excel file having two sheets
ExcelDocument xls = new ExcelDocument(2);

//Get the sheets
ExcelWorksheet xlsSheet1 = (ExcelWorksheet)xls.easy_getSheetAt(1);
ExcelWorksheet xlsSheet2 = (ExcelWorksheet)xls.easy_getSheetAt(2);

//Insert the datasets
xlsSheet1.easy_insertDataSet(dataSetCategory, 
                         new ExcelAutoFormat(Styles.AUTOFORMAT_EASYXLS1), true);
xlsSheet2.easy_insertDataSet(dataSetProduct, 
                         new ExcelAutoFormat(Styles.AUTOFORMAT_EASYXLS1), true);

//Export the Excel file
xls.easy_WriteXLSFile(fileStream);
or 
xls.easy_WriteXLSXFile(fileStream);

您可能希望从浏览器中打开文件,因此您可以将Excel文件写入ResponseStream并添加此额外代码。

Response.AppendHeader("content-disposition", "attachment; filename=YourFile.xls"); 
Response.ContentType = "application/octetstream";
Response.Clear();

//Generate the file and prompt the "Open or Save Dialog Box" 
xls.easy_WriteXLSFile(Response.OutputStream);

如果您需要有关如何导入数据集的更多详细信息,可以查看以下链接:

How to export dataset to Excel in C#