CSV, TSV ve Txt yi Excel e dönüştür
CSV Dosyalarını Açma
Virgülle Ayrılmış Değerler (CSV) dosyaları, değerleri virgüllerle ayrılmış veya sınırlandırılmış kayıtlar içerir. CSV dosyalarında, veri virgül karakteri tarafından ayrılmış bir tablo biçiminde depolanır ve çift tırnak işareti karakteri tarafından alıntılanır. Bir alanın değeri çift tırnak işareti karakteri içeriyorsa, bir çift tırnak işareti karakteri ile kaçırılır. Elektronik tablonuzdaki verileri bir CSV dosyasına dışa aktarmak için Microsoft Excel’i de kullanabilirsiniz.
CSV dosyalarını açmak için, LoadOptions sınıfını kullanın ve LoadFormat numaralı listesinde önceden belirlenmiş CSV değerini seçin.
Örnek
// 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."); |
CSV Dosyalarını Açma ve Geçersiz Karakterleri Değiştirme
Excel’de özel karakterler içeren CSV dosyası açıldığında, karakterler otomatik olarak değiştirilir. Aynısı Aspose.Cells API tarafından yapılmaktadır ve aşağıdaki kod örneğinde gösterilmektedir.
Örnek
// 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!"); |
Tercih edilen ayrıştırıcıyı kullanarak CSV dosyalarının açılması
CSV dosyalarının açılması için varsayılan ayrıştırıcı ayarlarının her zaman kullanılması gerekli değildir. Bazen CSV dosyası içe aktarıldığında beklenen çıktı oluşturulmaz, tarih formatı beklenildiği gibi olmaz veya boş alanlar farklı şekilde işlenir. Bu amaçla, farklı veri türlerini ayrıştırmak için kendi tercih edilen ayrıştırıcısını sağlamak için TxtLoadOptions.PreferredParsers kullanılabilir ve gereksinimlere göre aşağıdaki örnek kod, tercih edilen ayrıştırıcının kullanımını göstermektedir.
Bu özelliği test etmek için örnek kaynak dosya ve çıktı dosyalarını aşağıdaki bağlantılardan indirebilirsiniz.
outputsamplePreferredParser.xlsx
Örnek
// 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"; | |
} | |
} |
TSV (Sekme ile Ayrılmış) Dosyaların Açılması
Sekme ile ayrılmış dosyalar, herhangi bir biçimlendirme olmadan elektronik tablo verilerini içerir. Veri, tablo ve elektronik tablolar gibi sütunlar ve satırlar halinde düzenlenir. Kısacası, bir sekme ile ayrılmış dosya, metin içinde her sütun arasında bir sekme bulunan özel bir düz metin dosyası türüdür.
Sekme ile ayrılmış dosyaları açmak için geliştiricilerin kullanmaları gereken şey, LoadOptions sınıfını seçmek ve LoadFormat numaralı değeri, TSV değeri içeren önceden tanımlanmış LoadFormat listesinden seçmektir.
Örnek
// 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."); |