Microsoft® Excel-fildelning via Java

Dela upp Excel-kalkylblad i kalkylblad inom Java-baserade applikationer

 

Det finns olika scenarier, när det finns behov av att dela upp Excel-filer som ett kalkylblad som innehåller elevdata med tilldelning av ett ark för varje elev. Och det finns behov av att dela upp varje ark elevmässigt som en separat fil. För att automatisera det via Java-applikation, Java Excel API är till för att dela upp Excel-dokument arkvis. Format som stöds inkluderar XLS, XLSX, XLSB, XLSM, ODS.

Dela upp Excel-dokument i flera filer

Det enklaste sättet att dela upp Excel-fil i ark är, komma åt alla ark, iterera genom varje ark och spara ett och ett i önskat format. För att ladda arbetsbladet tillhandahåller API Arbetsbok klass. getWorksheets().getCount() metoden får totalt antal ark. Gå igenom varje ark och använd getWorksheets().get(sheetindex) för att komma åt ett specifikt blad. Flytta den valda arkdatan till det nyskapade Workbook-klassobjektet med hjälp av Kopieringsmetod . Spara den till sist i önskat format.

Java Kod för att dela upp Excel-filer
// Load XLS spreadsheet
Workbook wbk = new Workbook("sourceFile.xls");
//Iterate all worksheets inside the workbook
for(int i=0; i< wbk.getWorksheets().getCount(); i++){
//Access the i th worksheet
Worksheet worksheet = wbk.getWorksheets().get(i);
Workbook bk = new Workbook();
bk.getWorksheets().get(0).copy(worksheet);
// Save the file.
bk.save("path"+worksheet.getName()+"-"+i+".xls");
}
 

Dela upp Excel-kalkylblad i rutor

API ger också funktionalitet för att dela upp Excel-kalkylblad i olika rutor. Processen är att ladda filen med Workbook-klassen. Välj det första kalkylbladet eller ett önskat ark genom att tillhandahålla dess index. Anropa setActiveCell som har relevant cellindex som parameter. Och slutligen dela upp kalkylbladets fönster i olika rutor genom att anropa split()-metoden.

Java Kod för att dela upp Excel-ark i fönstervy
//Instantiate a new workbook / Open a template file
Workbook bk = new Workbook(dataDir + "workbook.xls");
//Set the active cell
bk.getWorksheets().get(0).setActiveCell("A20");
//Split the worksheet window
bk.getWorksheets().get(0).split();