تغيير مصدر البيانات للرسم البياني إلى ورقة العمل الوجهة أثناء نسخ الصفوف أو النطاق

سيناريوهات الاستخدام المحتملة

عند نسخ الصفوف أو النطاق الذي يحتوي على رسوم بيانية إلى ورقة عمل جديدة، فإن مصدر بيانات الرسم البياني لا يتغير. على سبيل المثال، إذا كان مصدر بيانات الرسم البياني هو =Sheet1!$A$1:$B$4، فبعد نسخ الصفوف أو النطاق إلى ورقة عمل جديدة، سيظل مصدر البيانات هو نفسه أي =Sheet1!$A$1:$B$4. لا يزال يشير إلى ورقة العمل القديمة أي Sheet1. وهذا هو سلوك Microsoft Excel أيضًا. ولكن إذا كنت ترغب في أن يشير إلى ورقة العمل الوجهة الجديدة، فيرجى استخدام خاصية CopyOptions.ReferToDestinationSheet وتعيينها على القيمة صحيح أثناء استدعاء طريقة Cells.CopyRows(). الآن إذا كانت ورقة العمل الوجهة الخاصة بك هي DestSheet، فسيتغير مصدر البيانات لرسمك البياني من =Sheet1!$A$1:$B$4 إلى =DestSheet!$A$1:$B$4.

تغيير مصدر البيانات للرسم البياني إلى ورقة العمل الوجهة أثناء نسخ الصفوف أو النطاق

الكود العيني التالي يشرح استخدام خاصية CopyOptions.ReferToDestinationSheet أثناء نسخ الصفوف أو النطاق الذي يحتوي على رسم بياني إلى ورقة عمل جديدة. يستخدم الكود ملف الإكسل العيني ويولد ملف الإكسل الناتج. توضح اللقطة الشاشة أن مصدر البيانات للرسم البياني في ملف الإكسل الناتج الآن يشير إلى DestSheet بدلاً من Sheet1.

todo:image_alt_text

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
String dataDir = Utils.getDataDir(ChangeDataSource.class);
// Load sample excel file
Workbook wb = new Workbook(dataDir + "sample.xlsx");
// Access the first sheet which contains chart
Worksheet source = wb.getWorksheets().get(0);
// Add another sheet named DestSheet
Worksheet destination = wb.getWorksheets().add("DestSheet");
// Set CopyOptions.ReferToDestinationSheet to true
CopyOptions options = new CopyOptions();
options.setReferToDestinationSheet(true);
/*
* Copy all the rows of source worksheet to destination worksheet which includes chart as well The chart data source will
* now refer to DestSheet
*/
destination.getCells().copyRows(source.getCells(), 0, 0, source.getCells().getMaxDisplayRange().getRowCount(),
options);
// Save workbook in xlsx format
wb.save(dataDir + "output.xlsx", SaveFormat.XLSX);