Akıllı İşaretleyicileri Kullanma

Giriş

Tasarımcı Elektronik Tablosu ve Akıllı İşaretleyiciler

Tasarımcı elektronik tabloları, görsel biçimlendirme, formüller ve akıllı işaretçiler içeren standart Excel dosyalarıdır. Bir projeden gelen bilgiler ve ilgili ilgili kişiler için bilgiler gibi bir veya daha fazla veri kaynağına başvuran akıllı işaretçiler içerebilirler. Akıllı işaretçiler, bilgi almak istediğiniz hücrelere yazılır.

Tüm akıllı işaretçiler &= ile başlar. Veri işaretçisine örnek olarak &=Party.FullName verilebilir. Veri işaretçisi birden fazla öğeyle, örneğin tam bir satırla sonuçlanırsa, sonraki satırlar yeni bilgilere yer açmak için otomatik olarak aşağı taşınır. Böylece ara toplamlar ve toplamlar, girilen verilere dayalı hesaplamalar yapmak için veri işaretçisinden hemen sonra satıra yerleştirilebilir. Girilen satırlarda hesaplamalar yapmak için şunu kullanın:dinamik formüller.

Akıllı işaretçiler şunlardan oluşur:veri kaynağı vealan adıçoğu bilgi için parçalar. Değişkenler ve değişken dizileri ile özel bilgiler de iletilebilir. Değişkenler her zaman yalnızca bir hücreyi doldururken, değişken dizileri birkaç hücreyi doldurabilir. Hücre başına yalnızca bir veri işaretçisi kullanın. Kullanılmayan akıllı işaretçiler kaldırılır.

Bir akıllı işaretleyici ayrıca parametreler içerebilir. Parametreler, bilgilerin düzenlenme şeklini değiştirmenize olanak tanır. Akıllı işaretçinin sonuna parantez içinde virgülle ayrılmış bir liste olarak eklenirler.

Akıllı İşaretleyici Seçenekleri

&=DataSource.FieldName &=[Veri Kaynağı].[Alan Adı]&=$VariableName &=$Değişken Dizisi &==Dinamik Formül &=&=Tekrar DinamikFormül

parametreler

Aşağıdaki parametrelere izin verilir:

  • ekleme - Verileri sığdırmak için fazladan satır eklemeyin.
  • atla:n - Her veri satırı için n sayıda satır atlayın.
  • *artan:n veya azalan:n - Verileri akıllı işaretçilerde sıralayın. n 1 ise sütun sıralayıcının ilk anahtarıdır. Veri kaynağı işlendikten sonra veriler sıralanır. Örneğin: &=Tablo1.Alan3(artan:1).
  • yatay - Verileri yukarıdan aşağıya yazmak yerine soldan sağa yazın.
  • sayısal - Mümkünse metni sayıya dönüştürün.
  • vardiya - Verileri sığdırmak için fazladan satırlar veya sütunlar oluşturarak aşağı veya sağa kaydırın. Shift parametresi, Microsoft Excel’dekiyle aynı şekilde çalışır. Örneğin, Microsoft Excel’de, bir hücre aralığı seçtiğinizde, sağ tıklayın ve seçinSokmak ve belirtinhücreleri aşağı kaydır, Hücreleri sağa kaydır ve diğer seçenekler. Kısacası, kaydırma parametresi dikey/normal (yukarıdan aşağıya) veya yatay (soldan sağa) akıllı işaretçiler için aynı işlevi yerine getirir.
  • fasulye - Veri kaynağının basit bir POJO olduğunu gösterir. Yalnızca Java API’de desteklenir.

Değişken satırlara veri eklemek için noadd ve jump parametreleri birleştirilebilir. Şablon aşağıdan yukarıya doğru işlendiği için, alternatif satırın önüne fazladan satır eklenmesini önlemek için ilk satıra noadd eklemelisiniz.

Birden fazla parametreniz varsa, bunları virgülle ayırın ancak boşluk bırakın: parametreA,parametreB,parametreC

Aşağıdaki ekran görüntüleri, her bir satıra nasıl veri ekleneceğini gösterir.

yapılacaklar:resim_alternatif_metin

olur…

yapılacaklar:resim_alternatif_metin

Dinamik Formüller

Dinamik formüller, formül dışa aktarma işlemi sırasında eklenecek satırlara başvursa bile Excel formüllerini hücrelere eklemenize olanak tanır. Dinamik formüller, eklenen her satır için yinelenebilir veya yalnızca veri işaretçisinin yerleştirildiği hücreyi kullanabilir.

Dinamik formüller aşağıdaki ek seçeneklere izin verir:

  • r - Geçerli satır numarası.
  • 2, -1 - Geçerli satır numarasına kaydırma.

Aşağıda yinelenen bir dinamik formül ve sonuçta ortaya çıkan Excel çalışma sayfası gösterilmektedir.

yapılacaklar:resim_alternatif_metin

olur…

yapılacaklar:resim_alternatif_metin

Cell C1, =A1 formülünü içerirB1, C2 içerir = A2B2 ve C3 = A3*B3.

Akıllı işaretleyicileri işlemek çok kolaydır. Aşağıdaki kod parçacığı bunun nasıl yapıldığını gösterir.

// 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.getSharedDataDir(DynamicFormulas.class) + "SmartMarkers/";
//set the file path of designer spreadsheet containing smart markers
String designerFile = dataDir + "templateDynamicFormulas.xlsx";
// Create the relevant data listfor the AnswerData object
ArrayList<AnswerData> dataList = new ArrayList<>();
dataList.add(new AnswerData(100.00, 2));
dataList.add(new AnswerData(75.25, 3));
dataList.add(new AnswerData(25.00, 5));
if (designerFile != null)
{
// Instantiating a WorkbookDesigner object
WorkbookDesigner designer = new WorkbookDesigner();
// Open a designer spreadsheet containing smart markers
designer.setWorkbook(new Workbook(designerFile));
// Set the data source for the designer spreadsheet
designer.setDataSource("Answer", dataList);
// Process the smart markers
designer.process();
}
public class AnswerData
{
private double price;
private int amount;
public AnswerData(double priceValue, int amountValue)
{
this.price = priceValue;
this.amount = amountValue;
}
public double getPrice()
{
return price;
}
public void setPrice(double price)
{
this.price = price;
}
public int getAmount()
{
return amount;
}
public void setAmount(int amount)
{
this.amount = amount;
}
}

Değişken Dizileri Kullanma

Aşağıdaki örnek kod, Akıllı İşaretleyicilerde değişken dizilerin nasıl kullanılacağını gösterir. Çalışma kitabının ilk çalışma sayfasının A1 hücresine dinamik olarak işaretleyici için belirlediğimiz bir dizi değer içeren bir değişken dizi işaretçisi yerleştiririz, işaretçileri hücrelere işaretçiye karşı doldurmak için işler. Son olarak Excel dosyasını kaydediyoruz.

// 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.getSharedDataDir(UsingVariableArray.class) + "SmartMarkers/";
// Instantiate a new Workbook designer.
WorkbookDesigner report = new WorkbookDesigner();
// Get the first worksheet of the workbook.
Worksheet w = report.getWorkbook().getWorksheets().get(0);
/*
* Set the Variable Array marker to a cell.You may also place this Smart
* Marker into a template file manually in Ms Excel and then open this
* file via Workbook.
*/
w.getCells().get("A1").putValue("&=$VariableArray");
// Set the DataSource for the marker(s).
report.setDataSource("VariableArray", new String[] { "English", "Arabic", "Hindi", "Urdu", "French" });
// Process the markers.
report.process(false);
// Save the Excel file.
report.getWorkbook().save(dataDir + "varaiblearray_out.xlsx");

Verileri Gruplandırma

Bazı Excel raporlarında, okumayı ve analiz etmeyi kolaylaştırmak için verileri gruplara ayırmanız gerekebilir. Verileri gruplara ayırmanın birincil amaçlarından biri, her bir kayıt grubu üzerinde hesaplamalar yapmaktır (özet işlemleri gerçekleştirmek).

Aspose.Cells akıllı işaretleyiciler, verileri ayarlanan alanlara göre gruplandırmanıza ve veri kümeleri veya veri grupları arasına özet satırlar yerleştirmenize olanak tanır. Örneğin, verileri Customers.CustomerID’ye göre gruplandırıyorsanız, grup her değiştiğinde bir özet kayıt ekleyebilirsiniz.

parametreler

Aşağıda, verileri gruplandırmak için kullanılan bazı akıllı işaretleyici parametreleri verilmiştir.

grup:normal/birleştir/tekrarla

Aralarından seçim yapabileceğiniz üç tür grubu destekliyoruz.

  • normal - Alan(lar)a göre grup değeri, sütundaki karşılık gelen kayıtlar için tekrarlanmaz; bunun yerine veri grubu başına bir kez yazdırılırlar.
  • birleştirmek - Her grup kümesi için alan(lar)a göre gruptaki hücreleri birleştirme dışında normal parametreyle aynı davranış.
  • tekrar et - Alan(lar)a göre grup değeri ilgili kayıtlar için tekrarlanır.

Örneğin: &=Customers.CustomerID(group:merge)

atlamak

Her gruptan sonra belirli sayıda satırı atlar.

Örneğin &=Employees.EmployeeID(grup:normal,atla:1)

ara toplamN

Alana göre grupla ilgili belirtilen alan verileri için bir özet işlemi gerçekleştirir. N, bir veri listesinde ara toplamları hesaplarken kullanılan işlevi belirten 1 ile 11 arasındaki sayıları temsil eder. (1=ORTALAMA, 2=SAYI, 3=SAYI, 4=MAKS, 5=MIN,…9=TOPLA vb.) Daha fazla ayrıntı için Microsoft Excel’in yardımındaki Ara toplam referansına bakın.

Biçim aslında şöyle belirtir: alt toplamN:Ref burada Ref sütuna göre grubu ifade eder.

Örneğin,

  • &=Products.Units(subtotal9:Products.ProductID) şuna göre özet işlevini belirtir:Birimler alanı ile ilgili olarakÜrün kimliği alanÜrün:% s masa.
  • &=Tabx.Col3(subtotal9:Tabx.Col1) özet fonksiyonunu belirtir.Sütun3 alan grubuCol1 masadaTabx.
  • &=Table1.ColumnD(subtotal9:Table1.ColumnA&Table1.ColumnB) aşağıdaki özet işlevini belirtirsütunD alan grubuSütunA veSütunB masadaTablo 1.

Yuvalanmış Nesneleri Kullanma

Aspose.Cells, akıllı işaretleyicilerdeki iç içe nesneleri destekler, iç içe nesneler basit olmalıdır.

Basit bir şablon dosyası kullanıyoruz. Bazı iç içe akıllı işaretçileri içeren tasarımcı elektronik tablosuna bakın.

İç içe akıllı işaretçileri gösteren tasarımcı dosyasının ilk çalışma sayfası.

yapılacaklar:resim_alternatif_metin

Aşağıdaki örnek bunun nasıl çalıştığını göstermektedir. Aşağıdaki kodu çalıştırmak, aşağıdaki çıktıyı verir.

Elde edilen verileri gösteren çıktı dosyasının ilk çalışma sayfası.

yapılacaklar:resim_alternatif_metin

// 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.getSharedDataDir(UsingNestedObjects.class) + "SmartMarkers/";
Workbook workbook = new Workbook(dataDir + "TestSmartMarkers.xlsx");
WorkbookDesigner designer = new WorkbookDesigner();
designer.setWorkbook(workbook);
ArrayList<Individual> list = new ArrayList<Individual>();
list.add(new Individual("John", 23, new Wife("Jill", 20)));
list.add(new Individual("Jack", 25, new Wife("Hilly", 21)));
list.add(new Individual("James", 26, new Wife("Hally", 22)));
list.add(new Individual("Baptist", 27, new Wife("Newly", 23)));
designer.setDataSource("Individual", list);
designer.process(false);
workbook.save(dataDir + "UsingNestedObjects_out.xlsx");
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
public class Individual {
private String m_Name;
private int m_Age;
private Wife m_Wife;
public Individual(String name, int age, Wife wife) {
this.m_Name = name;
this.m_Age = age;
this.m_Wife = wife;
}
public String getName() {
return m_Name;
}
public int getAge() {
return m_Age;
}
public Wife getWife() {
return m_Wife;
}
}

Genel Listeyi İç İçe Nesne Olarak Kullanma

Aspose.Cells artık genel bir listenin iç içe geçmiş bir nesne olarak kullanılmasını da destekliyor. Lütfen aşağıdaki kodla oluşturulan çıktı excel dosyasının ekran görüntüsünü kontrol edin. Ekran görüntüsünde görebileceğiniz gibi, bir Öğretmen nesnesi iç içe geçmiş birden çok öğrenci nesnesi içerir.

yapılacaklar:resim_alternatif_metin

// 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.getSharedDataDir(UsingGenericList.class) + "SmartMarkers/";
// Create a designer workbook
Workbook workbook = new Workbook();
Worksheet worksheet = workbook.getWorksheets().get(0);
worksheet.getCells().get("A1").putValue("Teacher Name");
worksheet.getCells().get("A2").putValue("&=Teacher.Name");
worksheet.getCells().get("B1").putValue("Teacher Age");
worksheet.getCells().get("B2").putValue("&=Teacher.Age");
worksheet.getCells().get("C1").putValue("Student Name");
worksheet.getCells().get("C2").putValue("&=Teacher.Students.Name");
worksheet.getCells().get("D1").putValue("Student Age");
worksheet.getCells().get("D2").putValue("&=Teacher.Students.Age");
// Apply Style to A1:D1
Range range = worksheet.getCells().createRange("A1:D1");
Style style = workbook.createStyle();
style.getFont().setBold(true);
style.setForegroundColor(Color.getYellow());
style.setPattern(BackgroundType.SOLID);
StyleFlag flag = new StyleFlag();
flag.setAll(true);
range.applyStyle(style, flag);
// Initialize WorkbookDesigner object
WorkbookDesigner designer = new WorkbookDesigner();
// Load the template file
designer.setWorkbook(workbook);
ArrayList<Teacher> list = new ArrayList<>();
// Create the relevant student objects for the Teacher object
ArrayList<Person> students = new ArrayList<>();
students.add(new Person("Chen Zhao", 14));
students.add(new Person("Jamima Winfrey", 18));
students.add(new Person("Reham Smith", 15));
// Create a Teacher object
Teacher h1 = new Teacher("Mark John", 30, students);
// Create the relevant student objects for the Teacher object
students = new ArrayList<>();
students.add(new Person("Karishma Jathool", 16));
students.add(new Person("Angela Rose", 13));
students.add(new Person("Hina Khanna", 15));
// Create a Teacher object
Teacher h2 = new Teacher("Masood Shankar", 40, students);
// Add the objects to the list
list.add(h1);
list.add(h2);
// Specify the DataSource
designer.setDataSource("Teacher", list);
// Process the markers
designer.process();
// Autofit columns
worksheet.autoFitColumns();
// Save the Excel file.
designer.getWorkbook().save(dataDir + "UsingGenericList_out.xlsx");
package AsposeCellsExamples.SmartMarkers;
import java.util.ArrayList;
public class Teacher extends Person {
public Teacher(String name, int age, ArrayList<Person> students) {
super(name, age);
// TODO Auto-generated constructor stub\
m_Students = students;
}
private ArrayList<Person> m_Students;
public ArrayList<Person> getStudents() {
return m_Students;
}
}
package AsposeCellsExamples.SmartMarkers;
public class Person {
private String m_Name;
private int m_Age;
public Person(String name, int age) {
this.m_Name = name;
this.m_Age = age;
}
public String getName() {
return m_Name;
}
public int getAge() {
return m_Age;
}
}

Akıllı İşaretleyicilerin HTML özelliğini kullanma

Aşağıdaki örnek kod, Akıllı İşaretleyicilerin HTML özelliğinin kullanımını açıklar. İşleme gireceği zaman HTML’den dolayı “Hello World” içinde “World” yazısını kalın olarak gösterecektir. etiket.

// 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.getSharedDataDir(UsingHTMLProperty.class) + "SmartMarkers/";
Workbook workbook = new Workbook();
WorkbookDesigner designer = new WorkbookDesigner();
designer.setWorkbook(workbook);
workbook.getWorksheets().get(0).getCells().get("A1").putValue("&=$VariableArray(HTML)");
designer.setDataSource("VariableArray",
new String[] { "Hello <b>World</b>", "Arabic", "Hindi", "Urdu", "French" });
designer.process();
workbook.save(dataDir + "UHProperty-out.xls");

Akıllı İşaretleyiciler ile Verileri Birleştirirken Bildirim Alma

Bazen, tamamlanmadan önce işlenmekte olan hücre referansı veya belirli Akıllı İşaretleyici ile ilgili bildirimlerin alınması gerekebilir. Bu kullanılarak elde edilebilirWorkbookDesigner.CallBackmülkiyet veISmartMarkerCallBack

Örnek kod ve ayrıntılı açıklama için lütfen bu makaleye bakın.