Копировать фигуры между рабочими листами
Иногда вам нужно скопировать разные изображения, диаграммы и другие объекты рисования на разные рабочие листы в соответствии с вашими требованиями. Aspose.Cells поддерживает копирование фигур между листами. Графики, изображения и другие объекты копируются с высочайшей степенью точности.
Вы можете попробовать автоматизацию Office, но у нее есть свои недостатки. Есть несколько причин и проблем: например, безопасность, стабильность, масштабируемость, скорость, цена и функции. Короче говоря, есть много причин, главная из которых заключается в том, что сами Microsoft настоятельно рекомендуют не использовать автоматизацию Office с помощью программных решений.
В этой статье мы создадим консольное приложение, выполним копирование изображений, диаграмм и других объектов рисования между рабочими листами книги с помощью нескольких самых простых строк кода, используя Aspose.Cells.
Этот документ предназначен для предоставления разработчикам подробного понимания того, как копировать фигуры (изображения, диаграммы, элементы управления и другие объекты рисования) между рабочими листами.
Копирование фигур
В этой статье объясняется, как:
- Скопируйте изображение с одного рабочего листа на другой.
- Скопируйте диаграмму с одного рабочего листа на другой.
- Копировать элементы управления и другие объекты рисования с одного рабочего листа на другой..
Копирование изображения с одного рабочего листа на другой
Шаг 1. Создание книги с изображением и диаграммой в Microsoft Excel
- Создал новую книгу в Microsoft Excel.
- Добавьте изображение на первый рабочий лист и диаграмму на второй рабочий лист.
На следующих снимках экрана показаны два листа шаблонов, созданные в Microsoft Excel.
Рабочий лист «Диаграмма» с диаграммой
Рабочий лист «Картинка» с картинкой
Теперь скопируйте изображение с рабочего листа с именем «Изображение» на последний рабочий лист «Результат».
Шаг 2: Загрузите Aspose.Cells.Zip
- Скачать Aspose.Cells for Java.
- Разархивируйте его на своем компьютере для разработки.
ВсеAspose компоненты при установке работают в ознакомительном режиме. Режим оценки не имеет ограничения по времени и только вставляет водяные знаки в создаваемые документы.
Шаг 3: Создайте проект
Вы можете либо создать проект с помощью какого-нибудь редактора Java, например, Eclipse, либо создать простую программу с помощью Блокнота.
Шаг 4: Добавьте путь к классу
Чтобы установить путь к классу с помощью Eclipse, выполните следующие действия:
- Извлеките файлы Aspose.Cells.jar и dom4j_1.6.1.jar из Aspose.Cells.zip.
- Установите путь к классам проекта в Eclipse:
- Выберите свой проект в Eclipse, а затем щелкните меню Project-Properties.
- Выберите «Java Путь сборки» в левой части всплывающего окна, затем выберите вкладку «Библиотеки», нажмите «Добавить JAR» или «Добавить внешние JAR», чтобы выбрать Aspose.Cells.jar и dom4j_1.6.1.jar и добавить их в сборку. пути.
- Напишите приложение для вызова API компонентов Aspose.
Или вы можете установить его во время выполнения в командной строке DOS в Windows. Например:
javac - путь к классам% путь к классам%; e:\Aspose.Cells.jar; ClassName .javajava -classpath %classpath%;e:\Aspose.Cells.jar; имя класса
Шаг 5: Копирование изображения с одного рабочего листа на другой
Ниже приведен код для выполнения задачи. Он копирует изображение с рабочего листа с именем «Изображение» на рабочий лист «Результат».
// 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.getDataDir(CopyPicturefromOneWorksheetToAnother.class); | |
// Instantiating a Workbook object | |
Workbook workbook = new Workbook(dataDir + "Shapes.xls"); | |
WorksheetCollection ws = workbook.getWorksheets(); | |
Worksheet sheet1 = ws.get("Picture"); | |
Worksheet sheet2 = ws.get("Result"); | |
// get the Picture from first worksheet | |
Picture pic = sheet1.getPictures().get(0); | |
ByteArrayInputStream bis = new ByteArrayInputStream(pic.getData()); | |
// Copy the Picture to Second Worksheet | |
sheet2.getPictures().add(pic.getUpperLeftRow(), pic.getUpperLeftColumn(), pic.getWidthScale(), | |
pic.getHeightScale(), bis); | |
// Save the workbook | |
workbook.save(dataDir + "Shapes.xls"); |
Результат Задача 1:
После выполнения вышеуказанного кода изображение из рабочего листа «Изображение» теперь копируется на последний рабочий лист «Результат».
Рабочий лист «Результат» со скопированной картинкой
Задача 2. Копирование диаграммы с одного рабочего листа на другой
Шаг 1. Скопируйте диаграмму с одного рабочего листа на другой.
Ниже приведен фактический код, используемый компонентом для выполнения задачи.
// 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.getDataDir(CopyChartFromOneWorksheetToAnother.class); | |
// Instantiating a Workbook object | |
Workbook workbook = new Workbook(dataDir + "Shapes.xls"); | |
WorksheetCollection ws = workbook.getWorksheets(); | |
Worksheet sheet1 = ws.get("Chart"); | |
Worksheet sheet2 = ws.get("Result"); | |
// get the Chart from first worksheet | |
Chart chart = sheet1.getCharts().get(0); | |
ChartShape cshape = chart.getChartObject(); | |
// Copy the Chart to Second Worksheet | |
sheet2.getShapes().addCopy(cshape, 20, 0, 2, 0); | |
// Save the workbook | |
workbook.save(dataDir + "Shapes.xls"); |
Результат Задание 2
После выполнения вышеуказанного кода диаграмма из рабочего листа «Диаграмма» копируется в рабочий лист «Результат». См. следующий снимок результирующего рабочего листа.
Рабочий лист «Результат» со скопированной картинкой и диаграммой
Задача 3. Копирование элементов управления и других объектов чертежа с одного рабочего листа на другой
Рабочий лист «Контроль» с текстовым полем и овалом
Пожалуйста, ознакомьтесь со следующими простыми шагами, которые необходимо выполнить, чтобы получить желаемые результаты.
Шаг 1. Копирование рабочего листа между рабочими книгами
Ниже приведен код, используемый компонентом для выполнения задачи.
// 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.getDataDir(CopyWorksheetBetweenWorkbooks.class); | |
// Instantiating a Workbook object | |
Workbook workbook = new Workbook(dataDir + "Controls.xls"); | |
WorksheetCollection ws = workbook.getWorksheets(); | |
Worksheet sheet1 = ws.get("Control"); | |
Worksheet sheet2 = ws.get("Result"); | |
// Get the Shapes from the "Control" worksheet. | |
ShapeCollection shapes = sheet1.getShapes(); | |
// Copy the Textbox to Second Worksheet | |
sheet2.getShapes().addCopy(shapes.get(0), 5, 0, 2, 0); | |
// Copy the oval shape to Second Worksheet | |
sheet2.getShapes().addCopy(shapes.get(1), 10, 0, 2, 0); | |
// Save the workbook | |
workbook.save(dataDir + "Controls.xls"); |
Результат Задание 3
После выполнения приведенного выше кода элементы управления с рабочего листа «Управление» теперь копируются на рабочий лист «Результат». См. следующий снимок «Результата».
Рабочий лист «Результат» со скопированным текстовым полем и овалом
Заключение
В этой статье показано, как копировать различные фигуры, такие как изображения, диаграммы и другие объекты рисования, между использованием Aspose.Cells. Надеюсь, это даст вам некоторое представление, и вы сможете использовать эти параметры в соответствии с вашими различными сценариями.
Aspose.Cells может предложить большую гибкость, чем другие, для решений и обеспечивает выдающуюся скорость, эффективность и надежность для удовлетворения конкретных требований бизнес-приложений. Результаты показывают, что Aspose.Cells извлек выгоду из многолетних исследований, дизайна и тщательной настройки.
Мы сердечно приветствуем ваши вопросы, комментарии и предложения вAspose.Cells Форум.