Импорт и экспорт данных
Импорт данных в лист
Данные представляют мир таким, каков он есть. Чтобы понять данные, мы анализируем их и приобретаем понимание мира. Данные превращаются в информацию.
Существует много способов анализа: одним из распространенных методов является ввод данных в электронные таблицы и их манипулирование различными способами. С Aspose.Cells легко создавать электронные таблицы, которые берут данные из ряда внешних источников и готовят их к анализу.
В этой статье обсуждаются некоторые техники импорта данных, к которым разработчики имеют доступ через Aspose.Cells.
Импорт данных с использованием Aspose.Cells
При открытии файла Excel с помощью Aspose.Cells все данные в файле автоматически импортируются. Aspose.Cells также может импортировать данные из других источников данных:
Aspose.Cells предоставляет класс Workbook, который представляет файл Microsoft Excel. Класс Workbook содержит коллекцию WorksheetCollection, которая позволяет получать доступ к каждому листу в файле Excel. Лист представлен классом Worksheet. Класс Worksheet предоставляет коллекцию Cells. Коллекция Cells предоставляет очень полезные методы для импорта данных из других источников данных. В этой статье объясняется, как можно использовать эти методы.
Импорт из массива
Для импорта данных в таблицу из массива вызовите метод importArray коллекции Cells. Существует много перегруженных версий метода importArray, но типичная перегрузка принимает следующие параметры:
- Массив, объект массива, из которого вы импортируете содержимое.
- Номер строки, номер строки первой ячейки, в которую будет импортировано содержимое.
- Номер столбца, номер столбца первой ячейки, в которую будет импортировано содержимое.
- Вертикальный, логическое значение, указывающее, следует ли импортировать данные вертикально или горизонтально.
// 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(ImportingFromArray.class) + "data/"; | |
// Instantiating a Workbook object | |
Workbook workbook = new Workbook(); | |
// Obtaining the reference of the worksheet | |
Worksheet worksheet = workbook.getWorksheets().get(0); | |
// Creating an array containing names as string values | |
String[] names = new String[] { "laurence chen", "roman korchagin", "kyle huang" }; | |
// Importing the array of names to 1st row and first column vertically | |
Cells cells = worksheet.getCells(); | |
cells.importArray(names, 0, 0, false); | |
// Saving the Excel file | |
workbook.save(dataDir + "ImportingFromArray_out.xls"); | |
// Printing the name of the cell found after searching worksheet | |
System.out.println("Process completed successfully"); |
Импорт из многомерных массивов
Чтобы импортировать данные в таблицу из многомерных массивов, вызовите соответствующую перегрузку метода importArray коллекции Cells.
// 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(ImportingFromMultiDimensionalArray.class) + "data/"; | |
// Instantiate a new Workbook | |
Workbook workbook = new Workbook(); | |
// Get the first worksheet (default sheet) in the Workbook | |
Cells cells = workbook.getWorksheets().get("Sheet1").getCells(); | |
// Define a multi-dimensional array and store some data into it. | |
String[][] strArray = { { "A", "1A", "2A" }, { "B", "2B", "3B" } }; | |
// Import the multi-dimensional array to the sheet | |
cells.importArray(strArray, 0, 0); | |
// Save the Excel file | |
workbook.save(dataDir + "IFMDA_out.xlsx"); |
Импорт из ArrayList
Чтобы импортировать данные из ArrayList в листы, вызовите метод ImportArrayList коллекции Cells. Метод ImportArrayList принимает следующие параметры:
- ArrayList, объект ArrayList, содержимое которого будет импортировано.
- Номер строки, номер строки первой ячейки диапазона ячеек, из которого будет импортировано содержимое.
- Номер столбца, номер столбца первой ячейки, из которой будут импортированы данные.
- Вертикальный, логическое значение, указывающее, следует ли импортировать данные вертикально или горизонтально.
// 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(ImportingFromArrayList.class) + "data/"; | |
// Instantiating a Workbook object | |
Workbook workbook = new Workbook(); | |
// Obtaining the reference of the worksheet | |
Worksheet worksheet = workbook.getWorksheets().get(0); | |
// Instantiating an ArrayList object | |
ArrayList list = new ArrayList(); | |
// Add few names to the list as string values | |
list.add("laurence chen"); | |
list.add("roman korchagin"); | |
list.add("kyle huang"); | |
list.add("tommy wang"); | |
// Importing the contents of ArrayList to 1st row and first column | |
// vertically | |
worksheet.getCells().importArrayList(list, 0, 0, true); | |
// Saving the Excel file | |
workbook.save(dataDir + "IFromArrayList_out.xls"); | |
// Printing the name of the cell found after searching worksheet | |
System.out.println("Process completed successfully"); |
Импорт из пользовательских объектов в объединенную область
Чтобы импортировать данные из коллекции объектов в лист, содержащий объединенные ячейки, используйте свойство ImportTableOptions.CheckMergedCells. Если в шаблоне Excel есть объединенные ячейки, установите значение свойства ImportTableOptions.CheckMergedCells в true. Передайте объект ImportTableOptions вместе со списком столбцов/свойств в метод для отображения выбранного списка объектов. В следующем примере кода демонстрируется использование свойства ImportTableOptions.CheckMergedCells для импорта данных из пользовательских объектов в объединенные ячейки. См. прикрепленные файлы исходного Excel и результирующего Excel для справки.
// 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(ImportingFromArrayList.class) + "data/"; | |
// Instantiating a Workbook object | |
Workbook workbook = new Workbook(); | |
// Obtaining the reference of the worksheet | |
Worksheet worksheet = workbook.getWorksheets().get(0); | |
// Instantiating an ArrayList object | |
ArrayList list = new ArrayList(); | |
// Add few names to the list as string values | |
list.add("laurence chen"); | |
list.add("roman korchagin"); | |
list.add("kyle huang"); | |
list.add("tommy wang"); | |
// Importing the contents of ArrayList to 1st row and first column | |
// vertically | |
worksheet.getCells().importArrayList(list, 0, 0, true); | |
// Saving the Excel file | |
workbook.save(dataDir + "IFromArrayList_out.xls"); | |
// Printing the name of the cell found after searching worksheet | |
System.out.println("Process completed successfully"); |
Импорт данных из JSON
Aspose.Cells предоставляет класс JsonUtility для обработки JSON. У класса JsonUtility есть метод ImportData для импорта данных JSON. Aspose.Cells также предоставляет класс JsonLayoutOptions, представляющий опции макета JSON. Метод ImportData принимает JsonLayoutOptions в качестве параметра. Класс JsonLayoutOptions предоставляет следующие свойства.
- ArrayAsTable: Указывает, должен ли массив обрабатываться как таблица или нет.
- ConvertNumericOrDate: Получает или задает значение, указывающее, должна ли строка в JSON преобразовываться в числовую или дату.
- DateFormat: Получает и задает формат значения даты.
- IgnoreArrayTitle: Указывает, следует ли игнорировать заголовок, если свойство объекта является массивом.
- IgnoreNull: Указывает, следует ли игнорировать значение null или нет.
- IgnoreObjectTitle: Указывает, следует ли игнорировать заголовок, если свойство объекта является объектом.
- NumberFormat: Получает и задает формат числового значения.
- TitleStyle: Получает и задает стиль заголовка.
Приведенный ниже образец кода демонстрирует использование классов JsonUtility и JsonLayoutOptions для импорта данных из JSON.
// 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(ImportingFromJson.class) + "Data/"; | |
// Instantiating a Workbook object | |
Workbook workbook = new Workbook(); | |
Worksheet worksheet = workbook.getWorksheets().get(0); | |
// Read File | |
File file = new File(dataDir + "Test.json"); | |
BufferedReader bufferedReader = new BufferedReader(new FileReader(file)); | |
String jsonInput = ""; | |
String tempString; | |
while ((tempString = bufferedReader.readLine()) != null) { | |
jsonInput = jsonInput + tempString; | |
} | |
bufferedReader.close(); | |
// Set Styles | |
CellsFactory factory = new CellsFactory(); | |
Style style = factory.createStyle(); | |
style.setHorizontalAlignment(TextAlignmentType.CENTER); | |
style.getFont().setColor(Color.getBlueViolet()); | |
style.getFont().setBold(true); | |
// Set JsonLayoutOptions | |
JsonLayoutOptions options = new JsonLayoutOptions(); | |
options.setTitleStyle(style); | |
options.setArrayAsTable(true); | |
// Import JSON Data | |
JsonUtility.importData(jsonInput, worksheet.getCells(), 0, 0, options); | |
// Save Excel file | |
workbook.save(dataDir + "ImportingFromJson.out.xlsx"); |
Экспорт данных из листа
Aspose.Cells позволяет пользователям не только импортировать данные в листы из внешних источников данных, но также экспортировать данные листа в массив.
Экспорт данных с использованием Aspose.Cells - Экспорт данных в массив
Aspose.Cells предоставляет класс Workbook, который представляет файл Microsoft Excel. Класс Workbook содержит WorksheetCollection, позволяющий доступ к каждому листу в файле Excel. Лист представлен классом Worksheet. Класс Worksheet предоставляет коллекцию Cells.
Данные можно легко экспортировать в объект Array, используя метод exportArray класса Cells.
Столбцы, содержащие жестко определенные данные
Таблицы сохраняют данные в виде последовательности строк и столбцов. Используйте метод exportArray для экспорта данных из листа в массив. Для экспорта данных листа в объект Array используются следующие параметры: exportArray
- Номер строки, номер первой ячейки, из которой будет экспортированы данные.
- Номер столбца, номер первой ячейки, из которой будет экспортированы данные.
- Количество строк, количество строк для экспорта.
- Количество столбцов, количество столбцов для экспорта.
// 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(ExportingDataFromWorksheets.class) + "Data/"; | |
// Creating a file stream containing the Excel file to be opened | |
FileInputStream fstream = new FileInputStream(dataDir + "book1.xls"); | |
// Instantiating a Workbook object | |
Workbook workbook = new Workbook(fstream); | |
// Accessing the first worksheet in the Excel file | |
Worksheet worksheet = workbook.getWorksheets().get(0); | |
// Exporting the contents of 7 rows and 2 columns starting from 1st cell | |
// to Array. | |
Object dataTable[][] = worksheet.getCells().exportArray(0, 0, 7, 2); | |
// Printing the number of rows exported | |
System.out.println("No. Of Rows Exported: " + dataTable.length); | |
// Closing the file stream to free all resources | |
fstream.close(); |