Öppning av filer med olika format
Utvecklare använder Aspose.Cells för att öppna olika filer för olika ändamål. Till exempel öppna en fil för att hämta data från den, eller använd en fördefinierad designer kalkylbladsfil för att påskynda din utvecklingsprocess. Aspose.Cells tillåter utvecklare att öppna olika typer av källfiler. Dessa källfiler kan vara Microsoft Excel-rapporter, SpreadsheetML, Komma-separerade värden (CSV), Tabulator Begränsad eller Tab-separerade värden (TSV) filer. Denna artikel diskuterar öppning av dessa olika källfiler med hjälp av Aspose.Cells.
Om du behöver veta alla stödda filformat, se följande sidor: Supportfilformat
Enkla sätt att öppna Excel-filer
Öppning genom sökväg
För att öppna en Microsoft Excel-fil med hjälp av filen sökvägen ska du passera sökvägen till filen som en parameter vid skapande av instansen av Workbook klassen. Följande exempelkod demonstrerar öppnandet av en Excel-fil med hjälp av filen sökvägen.
Exempel
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getSharedDataDir(OpeningFilesThroughPath.class) + "files/"; | |
// Opening from path. | |
// Creating an Workbook object with an Excel file path | |
Workbook workbook1 = new Workbook(dataDir + "Book1.xlsx"); | |
// Print message | |
System.out.println("Workbook opened using path successfully."); |
Öppning genom Ström
Ibland är Excel-filen som du vill öppna lagrad som en ström. I så fall, liknande vid öppning av en fil med hjälp av filen sökvägen, ska passera strömmen som en parameter vid instantieringen av Workbook klassen. Följande exempelkod demonstrerar öppnandet av en Excel-fil med hjälp av strömmen.
Exempel
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getSharedDataDir(OpeningFilesThroughStream.class) + "loading_saving/"; | |
// Opening workbook from stream | |
// Create a Stream object | |
FileInputStream fstream = new FileInputStream(dataDir + "Book2.xls"); | |
// Creating an Workbook object with the stream object | |
Workbook workbook2 = new Workbook(fstream); | |
fstream.close(); | |
// Print message | |
System.out.println("Workbook opened using stream successfully."); |
Öppning av filer av olika Microsoft Excel-versioner
Användaren kan använda LoadOptions klassen för att specificera formatet av Excel-filen med hjälp av LoadFormat uppräkningen.
LoadFormatuppräkningen innehåller många fördefinierade filformat varav några ges nedan.
Formattyper | Beskrivning |
---|---|
Csv | Representerar en CSV-fil |
Excel97To2003 | Representerar en Excel 97 - 2003 fil |
Xlsx | Representerar en Excel 2007/2010/2013/2016/2019 och Office 365 XLSX fil |
Xlsm | Representerar en Excel 2007/2010/2013/2016/2019 och Office 365 XLSM fil |
Xltx | Representerar en Excel 2007/2010/2013/2016/2019 och Office 365 mall XLTX fil |
Xltm | Representerar en Excel 2007/2010/2013/2016/2019 och Office 365 makroaktiverad XLTM fil |
Xlsb | Representerar en Excel 2007/2010/2013/2016/2019 och Office 365 binär XLSB fil |
SpreadsheetML | Representerar en SpreadsheetML fil |
Tsv | Representerar en tabb-separerad värden fil |
TabDelimited | Representerar en Tabbavgränsad textfil |
Ods | Representerar en ODS fil |
Html | Representerar en HTML fil |
Mhtml | Representerar en MHTML fil |
Öppna Microsoft Excel 95/5.0 Fil
För att öppna Microsoft Excel 95 filer, instansiera Workbook med sökvägen eller strömmen av mallfilen. Exempelfil för att testa koden kan laddas ner från följande länk:
Exempel
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// Opening Microsoft Excel 97 Files | |
// Creating an EXCEL_97_TO_2003 LoadOptions object | |
// Creating an Workbook object with excel 97 file path and the | |
// loadOptions object | |
new Workbook(srcDir + "Excel95_5.0.xls"); | |
Öppnar Microsoft Excel 97 eller senare versioner XLS-filer
För att öppna XLS-filer av Microsoft Excel XLS 97 eller senare versioner, instansiera Workbook med sökvägen eller strömmen av mallfilen. Eller använd LoadOptions metoden och välj värdet EXCEL_97_TO_2003 i LoadFormat uppräkningen.
Exempel
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getSharedDataDir(OpeningMicrosoftExcel972003Files.class) + "loading_saving/"; | |
// Opening Microsoft Excel 97 Files | |
// Createing and EXCEL_97_TO_2003 LoadOptions object | |
LoadOptions loadOptions1 = new LoadOptions(LoadFormat.EXCEL_97_TO_2003); | |
// Creating an Workbook object with excel 97 file path and the | |
// loadOptions object | |
Workbook workbook3 = new Workbook(dataDir + "Book_Excel97_2003.xls", loadOptions1); | |
// Print message | |
System.out.println("Excel 97 Workbook opened successfully."); |
Öppna Microsoft Excel 2007 eller senare versioners XLSX-filer
För att öppna XLSX-filer av Microsoft Excel 2007 eller senare versioner, instansiera Workbook med sökvägen eller strömmen av mallfilen. Eller använd LoadOptions klassen och välj värdet XLSX i LoadFormat uppräkningen.
Exempel
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getSharedDataDir(OpeningMicrosoftExcel2007XlsxFiles.class) + "loading_saving/"; | |
// Opening Microsoft Excel 2007 XLSX Files. Createing and XLSX LoadOptions object | |
LoadOptions loadOptions2 = new LoadOptions(LoadFormat.XLSX); | |
// Creating an Workbook object with 2007 xlsx file path and the loadOptions object | |
Workbook workbook4 = new Workbook(dataDir + "Book_Excel2007.xlsx", loadOptions2); | |
// Print message | |
System.out.println("Excel 2007 Workbook opened successfully."); |
Öppna filer med olika format
Aspose.Cells tillåter utvecklare att öppna kalkylblad med olika format som SpreadsheetML, CSV, Tabbavgränsade filer. För att öppna sådana filer, kan utvecklare använda samma metodik som de använder för att öppna filer av olika Microsoft Excel-versioner.
Öppning av SpreadsheetML Filer
SpreadsheetML-filer är XML-representationer av dina kalkylblad inklusive all information om kalkylarket som formatering, formler, etc. Sedan Microsoft Excel XP, har en XML-exportalternativ lagts till i Microsoft Excel som exporterar dina kalkylblad till SpreadsheetML-filer.
För att öppna SpreadsheetML-filer, använd LoadOptions klassen och välj värdet SPREADSHEET_ML i LoadFormat uppräkningen.
Exempel
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getSharedDataDir(OpeningSpreadsheetMLFiles.class) + "loading_saving/"; | |
// Opening SpreadsheetML Files | |
// Creating and EXCEL_2003_XML LoadOptions object | |
LoadOptions loadOptions3 = new LoadOptions(LoadFormat.SPREADSHEET_ML); | |
// Creating an Workbook object with SpreadsheetML file path and the | |
// loadOptions object | |
Workbook workbook5 = new Workbook(dataDir + "Book3.xml", loadOptions3); | |
// Print message | |
System.out.println("SpreadSheetML format workbook has been opened successfully."); |
Öppning av CSV-filer
Comma Separated Values (CSV)-filer innehåller poster vars värden är avgränsade eller separerade med kommatecken. I CSV-filer lagras data i en tabellformat som har fält separerade av kommatecknet och citerade av dubbelfnuttarkarakteren. Om ett fälts värde innehåller en dubbelfnuttarkaraktär escaperas den med ett par av dubblefnuttarkaraktärer. Du kan också använda Microsoft Excel för att exportera dina kalkylbladsdata till en CSV-fil.
För att öppna CSV-filer, använd LoadOptions-klassen och välj värdet CSV, fördefinierat i LoadFormat-uppräkning.
Exempel
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getSharedDataDir(OpeningCSVFiles.class) + "loading_saving/"; | |
// Opening CSV Files | |
// Creating and CSV LoadOptions object | |
LoadOptions loadOptions4 = new LoadOptions(LoadFormat.CSV); | |
// Creating an Workbook object with CSV file path and the loadOptions | |
// object | |
Workbook workbook6 = new Workbook(dataDir + "Book_CSV.csv", loadOptions4); | |
// Print message | |
System.out.println("CSV format workbook has been opened successfully."); |
Öppna CSV-filer och ersätt ogiltiga tecken
I Excel, när en CSV-fil med specialtecken öppnas, ersätts tecknen automatiskt. Samma sak görs av Aspose.Cells API som visas i det givna kodexemplet nedan.
Exempel
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
//Source directory | |
String dataDir = Utils.getSharedDataDir(OpeningCSVFilesAndReplacingInvalidCharacters.class) + "LoadingSavingConvertingAndManaging/"; | |
LoadOptions loadOptions = new LoadOptions(LoadFormat.CSV); | |
//Load CSV file | |
Workbook workbook = new Workbook(dataDir + "[20180220142533][ASPOSE_CELLS_TEST].csv", loadOptions); | |
System.out.println(workbook.getWorksheets().get(0).getName()); // (20180220142533)(ASPOSE_CELLS_T | |
System.out.println(workbook.getWorksheets().get(0).getName().length()); // 31 | |
System.out.println("CSV file opened successfully!"); |
Öppning av CSV-filer med föredragen parser
Det är inte alltid nödvändigt att använda standard-inställningar för öppning av CSV-filer. Ibland skapas inte förväntad utdata vid import av CSV-filen, exempelvis är inte datumformatet som förväntat eller tomma fält hanteras på ett annat sätt. För detta ändamål används TxtLoadOptions.PreferredParsers för att tillhandahålla en egen föredragen parser för att tolka olika datatyper enligt behov. Följande exempelkod visar användningen av föredragen parser.
Exempelfilen och utdatafiler kan laddas ner från följande länkar för att testa denna funktion.
outputsamplePreferredParser.xlsx
Exempel
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
class TextParser implements ICustomParser | |
{ | |
@Override | |
public Object parseObject(String s) { | |
return s; | |
} | |
@Override | |
public String getFormat() { | |
return ""; | |
} | |
} | |
class DateParser implements ICustomParser { | |
@Override | |
public Object parseObject(String s) { | |
Date myDate = null; | |
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); | |
try { | |
myDate = formatter.parse(s); | |
} catch (ParseException e) { | |
e.printStackTrace(); | |
} | |
return myDate; | |
} | |
@Override | |
public String getFormat() { | |
return "dd/MM/yyyy"; | |
} | |
} | |
public class OpeningCSVFilesWithPreferredParser { | |
//Source directory | |
private static String sourceDir = Utils.Get_SourceDirectory(); | |
private static String outputDir = Utils.Get_OutputDirectory(); | |
public static void main(String[] args) throws Exception { | |
// Initialize Text File's Load options | |
TxtLoadOptions oTxtLoadOptions = new TxtLoadOptions(LoadFormat.CSV); | |
// Specify the separatot character | |
oTxtLoadOptions.setSeparator(','); | |
// Specify the encoding scheme | |
oTxtLoadOptions.setEncoding(Encoding.getUTF8()); | |
// Set the flag to true for converting datetime data | |
oTxtLoadOptions.setConvertDateTimeData(true); | |
// Set the preferred parsers | |
oTxtLoadOptions.setPreferredParsers(new ICustomParser[] { new TextParser(), new DateParser() }); | |
// Initialize the workbook object by passing CSV file and text load options | |
Workbook oExcelWorkBook = new Workbook(sourceDir + "samplePreferredParser.csv", oTxtLoadOptions); | |
// Get the first cell | |
Cell oCell = oExcelWorkBook.getWorksheets().get(0).getCells().get("A1"); | |
// Display type of value | |
System.out.println("A1: " + getCellType(oCell.getType()) + " - " + oCell.getDisplayStringValue()); | |
// Get the second cell | |
oCell = oExcelWorkBook.getWorksheets().get(0).getCells().get("B1"); | |
// Display type of value | |
System.out.println("B1: " + getCellType(oCell.getType()) + " - " + oCell.getDisplayStringValue()); | |
// Save the workbook to disc | |
oExcelWorkBook.save(outputDir + "outputsamplePreferredParser.xlsx"); | |
System.out.println("OpeningCSVFilesWithPreferredParser executed successfully.\r\n"); | |
} | |
private static String getCellType(int type){ | |
if(type == CellValueType.IS_STRING){ | |
return "String"; | |
} else if(type == CellValueType.IS_NUMERIC){ | |
return "Numeric"; | |
} else if(type == CellValueType.IS_BOOL){ | |
return "Bool"; | |
} else if(type == CellValueType.IS_DATE_TIME){ | |
return "Date"; | |
} else if(type == CellValueType.IS_NULL){ | |
return "Null"; | |
} else if(type == CellValueType.IS_ERROR){ | |
return "Error"; | |
} else{ | |
return "Unknown"; | |
} | |
} |
Öppning av TSV (Tab Separated Values) filer
Tab-separerade filer innehåller kalkylbladsdata utan någon formatering. Data ordnas i rader och kolumner som tabeller och kalkylblad. Kort sagt, en tab-separerad fil är en speciell typ av ren textfil med en tabulator mellan varje kolumn i texten.
För att öppna tab-separerade filer ska utvecklare använda klassen LoadOptions och välja värdet TSV, som är fördefinierat i LoadFormat-uppräkningen.
Exempel
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getSharedDataDir(OpeningTabDelimitedFiles.class) + "loading_saving/"; | |
// Creating and TAB_DELIMITED LoadOptions object | |
LoadOptions loadOptions5 = new LoadOptions(LoadFormat.TSV); | |
// Creating an Workbook object with Tab Delimited text file path and the | |
// loadOptions object | |
Workbook workbook7 = new Workbook(dataDir + "Book1TabDelimited.txt", loadOptions5); | |
// Print message | |
System.out.println("Tab Delimited workbook has been opened successfully."); |
Öppna krypterade Excelfiler
Vi vet att det är möjligt att skapa krypterade Excelfiler med Microsoft Excel. För att öppna sådana krypterade filer, bör utvecklare använda en särskild överbelastad LoadOptions metod och välja värdet DEFAULT, fördefinierat i FileFormatType uppräkningen. Denna metod skulle också ta lösenordet för den krypterade filen som visas nedan i exemplet.
Exempel
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getSharedDataDir(OpeningEncryptedExcelFiles.class) + "loading_saving/"; | |
// Opening Encrypted Excel Files | |
// Creating and EXCEL_97_TO_2003 LoadOptions object | |
LoadOptions loadOptions6 = new LoadOptions(LoadFormat.EXCEL_97_TO_2003); | |
// Setting the password for the encrypted Excel file | |
loadOptions6.setPassword("1234"); | |
// Creating an Workbook object with file path and the loadOptions object | |
Workbook workbook8 = new Workbook(dataDir + "encryptedBook.xls", loadOptions6); | |
// Print message | |
System.out.println("Encrypted workbook has been opened successfully."); |
Aspose.Cells stöder också öppnande av lösenordsskyddade MS Excel 2013-filer.
Öppning av SXC-filer
StarOffice Calc liknar Microsoft Excel och stöder formler, diagram, funktioner och makron. Kalkylblad som skapats med den här programvaran sparas med SXC-tillägget. SXC-filen används också för OpenOffice.org Calc kalkylbladsfiler. Aspose.Cells kan läsa SXC-filer som visas i följande kodexempel.
Exempel
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the source directory. | |
String sourceDir = Utils.Get_SourceDirectory(); | |
// Instantiate LoadOptions specified by the LoadFormat. | |
LoadOptions loadOptions = new LoadOptions(LoadFormat.SXC); | |
// Create a Workbook object and opening the file from its path | |
Workbook workbook = new Workbook(sourceDir + "SampleSXC.sxc", loadOptions); | |
// Using the Sheet 1 in Workbook | |
Worksheet worksheet = workbook.getWorksheets().get(0); | |
// Accessing a cell using its name | |
Cell cell = worksheet.getCells().get("C3"); | |
System.out.println("Cell Name: " + cell.getName() + " Value: " + cell.getStringValue()); |
Öppning av FODS-filer
FODS-fil är ett kalkylblad sparat i OpenDocument XML utan komprimering. Aspose.Cells kan läsa FODS-filer enligt den följande kodexempel.
Exempel
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the source directory. | |
String sourceDir = Utils.Get_SourceDirectory(); | |
// Instantiate LoadOptions specified by the LoadFormat. | |
LoadOptions loadOptions = new LoadOptions(LoadFormat.FODS); | |
// Create a Workbook object and opening the file from its path | |
Workbook workbook = new Workbook(sourceDir + "SampleFods.fods", loadOptions); | |
// Print message | |
System.out.println("FODS file opened successfully!"); |
Fortsatta ämnen
- Filtrera Definierade namn vid inläsning av arbetsbok
- Filtrera objekt vid inläsning av arbetsbok eller arbetsblad
- Få varningar vid inläsning av Excel-fil
- Behåll separatorer för tomma rader vid export av kalkylblad till CSV-format
- Ladda arbetsbok med specificerad pappersstorlek
- Öppna filer från olika Microsoft Excel-versioner
- Optimera minnesanvändningen vid arbete med stora filer med stora dataset
- Läsa Numbers-kalkylblad utvecklat av Apple Inc. med Aspose.Cells
- Läsning av CSV-fil med flera teckentabeller
- Stoppa konvertering eller laddning med hjälp av InterruptMonitor när det tar för lång tid
- Använda LightCells API