Импорт и экспорт данных
Импорт данных в лист
Данные представляют мир таким, каков он есть. Чтобы понять данные, мы анализируем их и приобретаем понимание мира. Данные превращаются в информацию.
Существует много способов анализа: одним из распространенных методов является ввод данных в электронные таблицы и их манипулирование различными способами. С 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 = "./"; | |
| // 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 = "./"; | |
| // 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 = "./"; | |
| // 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 = "./"; | |
| // 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 = "./"; | |
| // 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 = "./"; | |
| // 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(); |