تغيير مصدر البيانات للرسم البياني إلى ورقة العمل الوجهة أثناء نسخ الصفوف أو النطاق
سيناريوهات الاستخدام المحتملة
عند نسخ الصفوف أو النطاق الذي يحتوي على رسوم بيانية إلى ورقة عمل جديدة، فإن مصدر البيانات للرسم البياني لا يتغير. على سبيل المثال، إذا كان مصدر بيانات الرسم البياني يُساوي =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 أثناء نسخ الصفوف أو النطاق الذي يحتوي على رسوم بيانية إلى ورقة عمل جديدة. يستخدم الكود ملف الإكسل النموذجي]5113699.xlsx] ويولد ملف الإكسل الناتج]5113697.xlsx[.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Load sample excel file | |
Workbook wb = new Workbook(dataDir + "sample.xlsx"); | |
// Access the first sheet which contains chart | |
Worksheet source = wb.Worksheets[0]; | |
// Add another sheet named DestSheet | |
Worksheet destination = wb.Worksheets.Add("DestSheet"); | |
// Set CopyOptions.ReferToDestinationSheet to true | |
CopyOptions options = new CopyOptions(); | |
options.ReferToDestinationSheet = 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.Cells.CopyRows(source.Cells, 0, 0, source.Cells.MaxDisplayRange.RowCount, options); | |
// Save workbook in xlsx format | |
wb.Save(dataDir + "output_out.xlsx", SaveFormat.Xlsx); |