Использование маркеров изображений при группировке данных в умных маркерах
Использование маркеров изображений при группировке данных в умных маркерах
В следующем образце создается книга и затем добавляются следующие умные маркерные теги в ячейках D2, E2 и F2 соответственно.
&=Person.Name(group:normal,skip:1)
&=Person.City
&=Person.Photo(Picture:FitToCell)
Затем заполняются исходные данные и вызывается метод WorkbookDesigner.Process() для обработки умных маркерных тегов. Код использует следующие изображения, т.е. moon.png и moon2.png, но вы можете использовать любое изображение.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
public class UsingImageMarkersWhileGroupingDataInSmartMarkers | |
{ | |
class Person | |
{ | |
// Create Name, City and Photo properties | |
private string m_Name; | |
private string m_City; | |
private byte[] m_Photo; | |
public Person(string name, string city, byte[] photo) | |
{ | |
m_Name = name; | |
m_City = city; | |
m_Photo = photo; | |
} | |
public string Name | |
{ | |
get { return m_Name; } | |
set { m_Name = value; } | |
} | |
public string City | |
{ | |
get { return m_City; } | |
set { m_City = value; } | |
} | |
public byte[] Photo | |
{ | |
get { return m_Photo; } | |
set { m_Photo = value; } | |
} | |
} | |
public static void Run() | |
{ | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Get the images | |
byte[] photo1 = File.ReadAllBytes(dataDir + "moon.png"); | |
byte[] photo2 = File.ReadAllBytes(dataDir + "moon2.png"); | |
// Create a new workbook and access its worksheet | |
Workbook workbook = new Workbook(); | |
Worksheet worksheet = workbook.Worksheets[0]; | |
// Set the standard row height to 35 | |
worksheet.Cells.StandardHeight = 35; | |
// Set column widhts of D, E and F | |
worksheet.Cells.SetColumnWidth(3, 20); | |
worksheet.Cells.SetColumnWidth(4, 20); | |
worksheet.Cells.SetColumnWidth(5, 40); | |
// Add the headings in columns D, E and F | |
worksheet.Cells["D1"].PutValue("Name"); | |
Style st = worksheet.Cells["D1"].GetStyle(); | |
st.Font.IsBold = true; | |
worksheet.Cells["D1"].SetStyle(st); | |
worksheet.Cells["E1"].PutValue("City"); | |
worksheet.Cells["E1"].SetStyle(st); | |
worksheet.Cells["F1"].PutValue("Photo"); | |
worksheet.Cells["F1"].SetStyle(st); | |
// Add smart marker tags in columns D, E, F | |
worksheet.Cells["D2"].PutValue("&=Person.Name(group:normal,skip:1)"); | |
worksheet.Cells["E2"].PutValue("&=Person.City"); | |
worksheet.Cells["F2"].PutValue("&=Person.Photo(Picture:FitToCell)"); | |
// Create Persons objects with photos | |
List<Person> persons = new List<Person>(); | |
persons.Add(new Person("George", "New York", photo1)); | |
persons.Add(new Person("George", "New York", photo2)); | |
persons.Add(new Person("George", "New York", photo1)); | |
persons.Add(new Person("George", "New York", photo2)); | |
persons.Add(new Person("Johnson", "London", photo2)); | |
persons.Add(new Person("Johnson", "London", photo1)); | |
persons.Add(new Person("Johnson", "London", photo2)); | |
persons.Add(new Person("Simon", "Paris", photo1)); | |
persons.Add(new Person("Simon", "Paris", photo2)); | |
persons.Add(new Person("Simon", "Paris", photo1)); | |
persons.Add(new Person("Henry", "Sydney", photo2)); | |
persons.Add(new Person("Henry", "Sydney", photo1)); | |
persons.Add(new Person("Henry", "Sydney", photo2)); | |
// Create a workbook designer | |
WorkbookDesigner designer = new WorkbookDesigner(workbook); | |
// Set the data source and process smart marker tags | |
designer.SetDataSource("Person", persons); | |
designer.Process(); | |
// Save the workbook | |
workbook.Save(dataDir + "UsingImageMarkersWhileGroupingDataInSmartMarkers.xlsx", SaveFormat.Xlsx); | |
} | |
} |