C++ ile Excel ve ODS dosyalarının Koşullu Biçimlendirmelerini Ayarla
Giriş
Koşullu biçimlendirme, bir hücreye veya hücre aralığına biçimler uygulamanıza ve bu biçimlendirmenin hücre değerine veya bir formülün değerine bağlı olarak değişmesine olanak tanıyan gelişmiş bir Microsoft Excel özelliğidir. Örneğin, bir hücrenin değeri 500’den büyük olduğunda hücre kalın görünebilir. Hücre değeri koşulu karşıladığında belirtilen biçim, hücreye uygulanır. Hücre değeri biçim koşulunu karşılamazsa, hücrenin varsayılan biçimlendirmesi kullanılır. Microsoft Excel’de Biçim, ardından Koşullu Biçimlendirme‘yi seçerek Koşullu Biçimlendirme iletişim kutusunu açabilirsiniz.
Aspose.Cells, hücrelere koşullu biçimlendirme uygulamayı destekler. Bu makale, bu konuyu açıklamaktadır. Ayrıca Excel’in renk ölçeği koşullu biçimlendirme için kullandığı rengi nasıl hesapladığını açıklar.
Koşullu Biçimlendirme Uygulama
Aspose.Cells, koşullu biçimlendirme uygulamayı birkaç şekilde destekler:
- Tasarımcı elek tablosu kullanarak
- Kopya yöntemi kullanarak.
- Çalışma zamanında koşullu biçimlendirme oluşturarak.
Tasarımcı Elek Tablosu Kullanma
Geliştiriciler, Microsoft Excel’de koşullu biçimlendirmeler içeren bir tasarımcı elektronik tablo oluşturabilir ve ardından o elektronik tabloyu Aspose.Cells ile açabilirler. Aspose.Cells, tasarımcı elektronik tabloyu yükler ve kaydeder, herhangi bir koşullu biçimlendirme ayarını korur.
Kopyalama Yöntemi Kullanımı
Aspose.Cells, geliştiricilere bir hücreden diğerine koşullu biçimlendirme ayarlarını çağırarak kopyalama imkanı sunar.
#include <iostream>
#include <memory>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Path of input Excel file
U16String inputFilePath = srcDir + u"Book1.xlsx";
// Path of output Excel file
U16String outputFilePath = outDir + u"output.xls";
// Open the Excel file
Workbook workbook(inputFilePath);
// Access the first worksheet in the Excel file
Worksheet worksheet = workbook.GetWorksheets().Get(0);
int totalRowCount = 0;
// Iterate through all worksheets in the workbook
for (int i = 0; i < workbook.GetWorksheets().GetCount(); i++)
{
Worksheet sourceSheet = workbook.GetWorksheets().Get(i);
// Get the maximum display range of the source sheet
Range sourceRange = sourceSheet.GetCells().GetMaxDisplayRange();
// Create a destination range in the first worksheet
Range destRange = worksheet.GetCells().CreateRange(
sourceRange.GetFirstRow() + totalRowCount,
sourceRange.GetFirstColumn(),
sourceRange.GetRowCount(),
sourceRange.GetColumnCount());
// Copy data from source range to destination range
destRange.Copy(sourceRange);
// Update the total row count
totalRowCount += sourceRange.GetRowCount();
}
// Save the modified Excel file
workbook.Save(outputFilePath);
Aspose::Cells::Cleanup();
return 0;
}
Çalışma Zamanında Koşullu Biçimlendirme Uygulama
Aspose.Cells, çalışma zamanında koşullu biçimlendirme eklemeye ve kaldırmaya olanak tanır. Aşağıdaki kod örnekleri, koşullu biçimlendirme ayarlarını nasıl yapacağınızı gösterir:
- Bir çalışma kitabı örneği oluşturun.
- Boş bir koşullu biçimlendirme ekleyin.
- Biçimlendirmenin uygulanması gereken aralığı belirleyin.
- Biçimlendirme koşullarını tanımlayın.
- Dosyayı kaydedin.
Bu örneğin ardından, yazı tipi ayarları, kenarlık ayarları ve desen ayarları nasıl uygulanacağını gösteren birçok diğer küçük örnek gelir.
Microsoft Excel 2007, Aspose.Cells’in de desteklediği daha gelişmiş koşullu biçimlendirme ekledi. Buradaki örnekler, basit biçimlendirmeyi nasıl kullanacağınızı gösterir; Microsoft Excel 2007 örnekleri ise daha gelişmiş koşullu biçimlendirmeyi nasıl uygulayabileceğinizi gösterir.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main() {
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Path of input excel file
U16String filePath = srcDir + u"Book1.xlsx";
// Instantiating a Workbook object
Workbook workbook;
Worksheet sheet = workbook.GetWorksheets().Get(0);
// Adds an empty conditional formatting
int index = sheet.GetConditionalFormattings().Add();
FormatConditionCollection fcs = sheet.GetConditionalFormattings().Get(index);
// Sets the conditional format range.
CellArea ca;
ca.StartRow = 0;
ca.EndRow = 0;
ca.StartColumn = 0;
ca.EndColumn = 0;
fcs.AddArea(ca);
ca = CellArea();
ca.StartRow = 1;
ca.EndRow = 1;
ca.StartColumn = 1;
ca.EndColumn = 1;
fcs.AddArea(ca);
// Adds condition.
int conditionIndex = fcs.AddCondition(FormatConditionType::CellValue, OperatorType::Between, u"=A2", u"100");
// Adds condition.
int conditionIndex2 = fcs.AddCondition(FormatConditionType::CellValue, OperatorType::Between, u"50", u"100");
// Sets the background color.
FormatCondition fc = fcs.Get(conditionIndex);
fc.GetStyle().SetBackgroundColor(Color::Red());
// Saving the Excel file
workbook.Save(outDir + u"output.xls");
std::cout << "Conditional formatting applied successfully!" << std::endl;
Aspose::Cells::Cleanup();
return 0;
}
Yazı Tipi Ayarı
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Create a new workbook
Workbook workbook;
// Add a new worksheet to the workbook
int i = workbook.GetWorksheets().Add();
// Get the reference of the newly added worksheet by passing its sheet index
Worksheet worksheet = workbook.GetWorksheets().Get(i);
// Access the "A1" cell from the worksheet
Cell cell = worksheet.GetCells().Get(u"A1");
// Add some value to the "A1" cell
cell.PutValue(u"Hello Aspose!");
// Get the style of the cell
Style style = cell.GetStyle();
// Set the font weight to bold
Font font = style.GetFont();
font.SetIsBold(true);
// Apply the style to the cell
cell.SetStyle(style);
// Save the Excel file
workbook.Save(outDir + u"book1.out.xls", SaveFormat::Excel97To2003);
std::cout << "Excel file saved successfully!" << std::endl;
Aspose::Cells::Cleanup();
}
Sınır Ayarı
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Create a new workbook
Workbook workbook;
// Get the first worksheet
Worksheet sheet = workbook.GetWorksheets().Get(0);
// Add an empty conditional formatting
int index = sheet.GetConditionalFormattings().Add();
FormatConditionCollection fcs = sheet.GetConditionalFormattings().Get(index);
// Set the conditional format range
CellArea ca;
ca.StartRow = 0;
ca.EndRow = 5;
ca.StartColumn = 0;
ca.EndColumn = 3;
fcs.AddArea(ca);
// Add condition
int conditionIndex = fcs.AddCondition(FormatConditionType::CellValue, OperatorType::Between, u"50", u"100");
// Set the background color
FormatCondition fc = fcs.Get(conditionIndex);
fc.GetStyle().GetBorders().Get(BorderType::LeftBorder).SetLineStyle(CellBorderType::Dashed);
fc.GetStyle().GetBorders().Get(BorderType::RightBorder).SetLineStyle(CellBorderType::Dashed);
fc.GetStyle().GetBorders().Get(BorderType::TopBorder).SetLineStyle(CellBorderType::Dashed);
fc.GetStyle().GetBorders().Get(BorderType::BottomBorder).SetLineStyle(CellBorderType::Dashed);
fc.GetStyle().GetBorders().Get(BorderType::LeftBorder).SetColor(Color{0, 255, 255, 255});
fc.GetStyle().GetBorders().Get(BorderType::RightBorder).SetColor(Color{0, 255, 255, 255});
fc.GetStyle().GetBorders().Get(BorderType::TopBorder).SetColor(Color{0, 255, 255, 255});
fc.GetStyle().GetBorders().Get(BorderType::BottomBorder).SetColor(Color{255, 255, 0, 255});
// Save the workbook
workbook.Save(outDir + u"output.xlsx");
Aspose::Cells::Cleanup();
}
Desen Ayarı
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main() {
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Create a new workbook
Workbook workbook;
Worksheet sheet = workbook.GetWorksheets().Get(0);
// Adds an empty conditional formatting
int index = sheet.GetConditionalFormattings().Add();
FormatConditionCollection fcs = sheet.GetConditionalFormattings().Get(index);
// Sets the conditional format range
CellArea ca;
ca.StartRow = 0;
ca.EndRow = 5;
ca.StartColumn = 0;
ca.EndColumn = 3;
fcs.AddArea(ca);
// Adds condition
int conditionIndex = fcs.AddCondition(FormatConditionType::CellValue, OperatorType::Between, u"50", u"100");
FormatCondition fc = fcs.Get(conditionIndex);
fc.GetStyle().SetPattern(BackgroundType::ReverseDiagonalStripe);
fc.GetStyle().SetForegroundColor(Color{255, 255, 0, 255});
fc.GetStyle().SetBackgroundColor(Color{0, 255, 255, 255});
// Save the workbook
workbook.Save(outDir + u"output.xlsx");
std::cout << "Conditional formatting applied successfully!" << std::endl;
Aspose::Cells::Cleanup();
return 0;
}
Gelişmiş Konular
- 2-Renkli Ölçek ve 3-Renkli Ölçek Koşullu Biçimlendirmeleri Ekle
- Gelişmiş Koşullu Biçimlendirme Uygulamak
- Çalışma Kitaplarında Koşullu Biçimlendirme Uygulamak
- Koşullu Biçimlendirme ile Sıfır Satır ve Sütunlara Gölgelendirme Uygulamak
- Koşullu Biçimlendirme Veri Çubukları Görüntüleri Oluşturmak
- Kullanılan Koşullu Biçimlendirme İkon Setleri, Veri Çubukları veya Renk Ölçekleri Nesnelerini Almak