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