Det finns flera sätt att exportera "griddata" (förutsatt att du menar data som visas i en rutnätkontroll som en GridView, DataGrid eller ett tredjepartsgrid) för att utmärka sig i ASP.NET. Det bästa tillvägagångssättet beror på din specifika nätkontroll och din föredragna metod för att hantera Excel -generering.
Här är några vanliga metoder:
1. Använda epplus:
Epplus är ett populärt och kraftfullt open source-bibliotek för att arbeta med Excel-filer i .NET. Det är ett bra val för dess flexibilitet och användarvänlighet.
`` `csharp
använda OfficeOpenXML;
använder System.io;
// ... (din kod för att hämta griddata) ...
// Exempel förutsatt att du har en datatabell som heter 'dtgriddata'
använder (excelpackage -paket =new ExcelPackage ())
{
Excelworksheet kalkylblad =paket.workbook.worksheets.Add ("griddata");
kalkylblad.celler ["A1"]. LoadFromDataTable (dtgriddata, true); // sant för rubrik
// Valfritt:Styling, formatering, etc.
//worksheet.cells.style.font.bold =true; // Exempel djärva
// Spara Excel -filen på servern (justera sökvägen efter behov)
String filePath =path.combine (server.mappath ("~/excelExports"), "griddata_" + datetime.now.toString ("yyyymmddhhmms") + ".xlsx");
FileInfo ExcelFile =new FileInfo (FilePath);
paket.saveas (excelfile);
// Skicka filen till klienten för nedladdning (viktigt!)
Svar.clear ();
Response.AddHeader ("Content-Disposition", "Attachment; FileName =" + ExcelFile.Name);
Response.ContentType ="Application/Vnd.OpenXMlFormats Officedocument.SpreadSheetMl.Sheet";
Response.WriteFile (FilePath);
Svar.end ();
}
`` `
Kom ihåg att lägga till Epplus NuGet -paketet i ditt projekt.
2. Använda stängdxml:
StensedXML är ett annat utmärkt bibliotek för att arbeta med Excel -filer. Det erbjuder en liknande nivå av funktionalitet som Epplus. Kodstrukturen är ganska lik.
`` `csharp
med hjälp av stängdxml.excel;
använder System.io;
// ... (din kod för att hämta griddata) ...
// Exempel förutsatt att du har en datatabell som heter 'dtgriddata'
Använda (var workbook =new xlworkbook ())
{
var kalkylblad =workbook.workSheets.Add ("griddata");
kalkylblad.cell (1, 1) .InsertTable (dtgriddata);
// Valfritt:Styling och formatering
//worksheet.rangeused().style.font.bold =true;
// Spara Excel -filen
String filePath =path.combine (server.mappath ("~/excelExports"), "griddata_" + datetime.now.toString ("yyyymmddhhmms") + ".xlsx");
Workbook.Saveas (FilePath);
// Skicka fil till klienten (samma som EPPLUS -exempel)
Svar.clear ();
Response.AddHeader ("Content-Disposition", "Attachment; FileName =" + Path.getFileName (FilePath));
Response.ContentType ="Application/Vnd.OpenXMlFormats Officedocument.SpreadSheetMl.Sheet";
Response.WriteFile (FilePath);
Svar.end ();
}
`` `
Kom ihåg att lägga till STIFTXML NUGET -paketet i ditt projekt.
3. Använda en GridViews inbyggda exportfunktionalitet (om tillgänglig):
Vissa rutnätkontroller (som GridView i äldre ASP.NET-webbformulär) har inbyggd exportfunktionalitet för att utmärka sig. Detta är det enklaste tillvägagångssättet om ditt rutnät stöder det, men det är ofta mindre flexibelt än att använda ett dedikerat bibliotek. Kontrollera din Grid Controls dokumentation för hur du aktiverar och konfigurerar Excel -export. Det handlar vanligtvis om att ställa in en egenskap (t.ex. `tillåtelse =falsk`,` EnableViewState =falsk` och sedan kallar en metod som utlöser exporten).
Viktiga överväganden:
* Felhantering: Lägg till "försök-catch" -block för att hantera potentiella undantag under filskapande, spara och ladda ner.
* filväg: Se till att du har rätt filväg och behörigheter för att skapa och komma åt Excel -filer på din server. `Server.Mappath (" ~/excelExports ")" -delen skapar en mapp med namnet "ExcelExports" i din applikations rotkatalog; Se till att detta finns.
* Säkerhet: Sanera all användar som tillhandahålls data innan du inkluderar den i Excel-filen för att förhindra säkerhetssårbarheter (t.ex. XSS-attacker).
* Stora datasätt: För mycket stora datasätt, överväg att använda en strömningsmetod för att undvika minnesproblem. Epplus och ClosedXML erbjuder alternativ för detta.
* asp.net Core: Kodexemplen ovan är vanligtvis tillämpliga på ASP.NET Web Forms och ASP.NET MVC. I ASP.NET Core använder du `PhysicalFileresult` för att returnera filen till klienten.
Kom ihåg att ersätta platshållare som `dtgriddata` med din faktiska datakälla (det kan vara en datatabell, en lista över objekt etc.). Välj den metod som bäst passar ditt projekts behov och beroenden. Epplus och ClosedXML föredras i allmänhet för sin flexibilitet och robusta funktioner.