Scalanie i rozłączanie komórek to prosta i często używana funkcja programu Microsoft Excel. Scalanie komórek może okazać się przydatne w scenariuszach, na przykład gdy masz arkusz z wieloma kolumnami, które mają ten sam nagłówek. Możesz scalić komórki nad kolumnami, aby nadać im wspólny nagłówek. Jeśli scalone komórki nie są już potrzebne, możesz je równie łatwo rozłączyć. Może być konieczne wykonanie tych zadań w aplikacjach C++. W tym celu w tym artykule dowiesz się, jak programowo scalać i rozdzielać komórki w arkuszach programu Excel przy użyciu języka C++.
- C++ API do scalania i rozłączania komórek
- Scalanie komórek w arkuszu programu Excel przy użyciu języka C++
- Rozdziel komórki w arkuszu programu Excel przy użyciu języka C++
- Scal zakres komórek w arkuszu programu Excel przy użyciu języka C++
- Rozdziel zakres komórek w arkuszu programu Excel przy użyciu języka C++
- Scal komórki nazwanego zakresu w arkuszu programu Excel przy użyciu języka C++
C++ API do scalania i rozłączania komórek
Aspose.Cells for C++ to natywna biblioteka C++, która umożliwia tworzenie, odczytywanie i modyfikowanie plików programu Excel bez konieczności instalowania programu Microsoft Excel. Interfejs API obsługuje również scalanie i rozłączanie komórek w arkuszu programu Excel. Możesz zainstalować API poprzez NuGet lub pobrać bezpośrednio z sekcji Downloads.
PM> Install-Package Aspose.Cells.Cpp
Scalanie komórek w arkuszu programu Excel przy użyciu języka C++
W tym przykładzie utworzymy pusty arkusz programu Excel i połączymy kilka komórek, wykonując czynności podane poniżej.
- Najpierw utwórz instancję klasy IWorkbook.
- Pobierz arkusz przy użyciu metody IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Pobierz komórki za pomocą metody IWorksheet->GetICells().
- Połącz komórki za pomocą ICells->Merge(Aspose::Cells::Systems::Int32 firstRow, Aspose::Cells::Systems::Int32 firstColumn, Aspose::Cells::Systems::Int32 totalRows, Aspose:: Cells::Systems::Int32 totalColumns).
- Zastosuj style do scalonych komórek.
- Na koniec zapisz wyjściowy plik programu Excel za pomocą polecenia IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String nazwa_pliku) metoda.
Poniższy przykładowy kod pokazuje, jak scalać komórki w arkuszu programu Excel przy użyciu języka C++.
// Ścieżka katalogu wyjściowego.
StringPtr outDir = new String("OutputDirectory\\");
// Załaduj wejściowy plik Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();
// Uzyskaj dostęp do pierwszego arkusza w pliku Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Utwórz obiekt Cells, aby pobrać wszystkie komórki.
intrusive_ptr<ICells> cells = worksheet->GetICells();
// Połącz komórki
cells->Merge(5, 2, 2, 3);
// Umieść dane w komórce
cells->GetObjectByIndex(5, 2)->PutValue((StringPtr)new String("This is a test value"));
// Utwórz obiekt stylu
intrusive_ptr<IStyle> style = cells->GetICell(5, 2)->GetIStyle();
// Utwórz obiekt czcionki
intrusive_ptr<Aspose::Cells::IFont> font = style->GetIFont();
// Ustaw nazwę
font->SetName(new String("Times New Roman"));
// Ustaw rozmiar czcionki
font->SetSize(18);
// Ustaw kolor czcionki
font->SetColor(Systems::Drawing::Color::GetCyan());
// Pogrubiaj tekst
font->SetBold(true);
// Ustaw kursywę w tekście
font->SetItalic(true);
// Ustaw kolor pierwszego planu
style->SetForegroundColor(Systems::Drawing::Color::GetRed());
// Ustaw wzór
style->SetPattern(BackgroundType_Solid);
// Zastosuj styl
cells->GetICell(5, 2)->SetIStyle(style);
// Zapisz plik Excela
workbook->Save(outDir->StringAppend(new String("MergeCells_out.xlsx")));
Rozdziel komórki w arkuszu programu Excel przy użyciu języka C++
Poniżej przedstawiono kroki, aby rozłączyć komórki w arkuszu programu Excel.
- Załaduj plik programu Excel przy użyciu klasy IWorkbook.
- Pobierz arkusz zawierający scalone komórki za pomocą metody IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Pobierz komórki za pomocą metody IWorksheet->GetICells().
- Rozdziel komórki za pomocą ICells->UnMerge(Aspose::Cells::Systems::Int32 firstRow, Aspose::Cells::Systems::Int32 firstColumn, Aspose::Cells::Systems::Int32 totalRows, Aspose::Cells ::Systemy::Int32 totalColumns) metoda.
- Na koniec zapisz wyjściowy plik programu Excel za pomocą polecenia IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String nazwa_pliku) metoda.
Poniższy przykładowy kod ilustruje sposób rozłączenia komórek w arkuszu programu Excel przy użyciu języka C++.
// Ścieżka katalogu źródłowego.
StringPtr srcDir = new String("SourceDirectory\\");
// Ścieżka katalogu wyjściowego.
StringPtr outDir = new String("OutputDirectory\\");
// Załaduj wejściowy plik Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedCells.xlsx")));
// Uzyskaj dostęp do pierwszego arkusza w pliku Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Utwórz obiekt Cells, aby pobrać wszystkie komórki.
intrusive_ptr<ICells> cells = worksheet->GetICells();
// Rozdziel komórki.
cells->UnMerge(5, 2, 2, 3);
// Zapisz plik Excela
workbook->Save(outDir->StringAppend(new String("UnmergeCells_out.xlsx")));
Scal zakres komórek w arkuszu programu Excel przy użyciu języka C++
Poniżej przedstawiono kroki scalania zakresu komórek w arkuszu programu Excel.
- Najpierw utwórz instancję klasy IWorkbook.
- Pobierz żądany arkusz za pomocą metody IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Wstaw dane do komórki.
- Utwórz zakres za pomocą IWorksheet->GetICells()->CreateIRange(intrusiveptrAspose::Cells::Systems::String adres) metoda.
- Połącz zakres za pomocą metody IRange->Merge().
- Na koniec zapisz wyjściowy plik programu Excel za pomocą polecenia IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String nazwa_pliku) metoda.
Poniższy przykładowy kod pokazuje, jak scalić zakres komórek w arkuszu programu Excel przy użyciu języka C++.
// Ścieżka katalogu wyjściowego.
StringPtr outDir = new String("OutputDirectory\\");
// Załaduj wejściowy plik Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();
// Uzyskaj dostęp do pierwszego arkusza w pliku Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Wprowadź dane do komórki A1.
worksheet->GetICells()->GetObjectByIndex(0, 0)->PutValue((StringPtr)new String("This is a test value"));
// Utwórz zakres
intrusive_ptr<IRange> range = worksheet->GetICells()->CreateIRange(new String("A1:D4"));
// Scal zakres w jedną komórkę
range->Merge();
// Zapisz plik Excela
workbook->Save(outDir->StringAppend(new String("MergeRangeOfCells_out.xlsx")));
Rozdziel zakres komórek w arkuszu programu Excel przy użyciu języka C++
Poniżej przedstawiono kroki, aby rozłączyć zakres komórek w arkuszu programu Excel.
- Załaduj plik programu Excel przy użyciu klasy IWorkbook.
- Pobierz arkusz zawierający scalone komórki za pomocą metody IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Utwórz zakres za pomocą IWorksheet->GetICells()->CreateIRange(intrusiveptrAspose::Cells::Systems::String adres) metoda.
- Rozdziel zakres za pomocą metody IRange->UnMerge().
- Na koniec zapisz wyjściowy plik programu Excel za pomocą polecenia IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String nazwa_pliku) metoda.
Poniższy przykładowy kod pokazuje, jak rozdzielić zakres komórek w arkuszu programu Excel przy użyciu języka C++.
// Ścieżka katalogu źródłowego.
StringPtr srcDir = new String("SourceDirectory\\");
// Ścieżka katalogu wyjściowego.
StringPtr outDir = new String("OutputDirectory\\");
// Załaduj wejściowy plik Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedRangeOfCells.xlsx")));
// Uzyskaj dostęp do pierwszego arkusza w pliku Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Utwórz zakres
intrusive_ptr<IRange> range = worksheet->GetICells()->CreateIRange(new String("A1:D4"));
// Usuń zakres scalania
range->UnMerge();
// Zapisz plik Excela
workbook->Save(outDir->StringAppend(new String("UnmergeRangeOfCells_out.xlsx")));
Scal komórki nazwanego zakresu w arkuszu programu Excel przy użyciu języka C++
Aspose.Cells for C++ zapewnia również możliwość scalania komórek nazwanego zakresu. Aby to osiągnąć, wykonaj czynności podane poniżej.
- Załaduj plik programu Excel przy użyciu klasy IWorkbook.
- Pobierz arkusz za pomocą metody IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Utwórz zakres za pomocą IWorksheet->GetICells()->CreateIRange(intrusiveptrAspose::Cells::Systems::String adres) metoda.
- Ustaw nazwę zakresu za pomocą IRange->SetName(intrusiveptrAspose::Cells::Systems::String wartość) metoda.
- Utwórz i zastosuj style do nazwanego zakresu.
- Połącz komórki nazwanego zakresu za pomocą metody IRange->Merge().
- Na koniec zapisz wyjściowy plik programu Excel za pomocą polecenia IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String nazwa_pliku) metoda.
Poniższy przykładowy kod ilustruje sposób scalania komórek nazwanego zakresu przy użyciu języka C++.
// Ścieżka katalogu źródłowego.
StringPtr srcDir = new String("SourceDirectory\\");
// Ścieżka katalogu wyjściowego.
StringPtr outDir = new String("OutputDirectory\\");
// Załaduj wejściowy plik Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedRangeOfCells.xlsx")));
// Uzyskaj dostęp do pierwszego arkusza w pliku Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Utwórz zakres
intrusive_ptr<IRange> range = worksheet->GetICells()->CreateIRange(new String("A1:D4"));
// Ustaw nazwę zakresu
range->SetName(new String("Named_Range"));
// Zdefiniuj obiekt stylu
intrusive_ptr<IStyle> style = workbook->CreateIStyle();
// Ustaw wyrównanie w poziomie
style->SetHorizontalAlignment(TextAlignmentType::TextAlignmentType_Center);
// Utwórz obiekt StyleFlag
intrusive_ptr<IStyleFlag> styleFlag = Factory::CreateIStyleFlag();
// Ustaw wyrównanie w poziomie to true
styleFlag->SetHorizontalAlignment(true);
// Zastosuj styl do zakresu
range->ApplyIStyle(style, styleFlag);
// Umieść dane w zakresie
range->GetObjectByIndex(0, 0)->PutValue((StringPtr)new String("This is a test value"));
// Scal zakres
range->Merge();
// Zapisz plik Excela
workbook->Save(outDir->StringAppend(new String("MergeNamedRange_out.xlsx")));
Uzyskaj bezpłatną licencję
Możesz wypróbować interfejs API bez ograniczeń ewaluacyjnych, prosząc o bezpłatną licencję tymczasową.
Wniosek
W tym artykule nauczyłeś się scalać i rozdzielać komórki w arkuszu programu Excel przy użyciu języka C++. Co więcej, widziałeś, jak scalać i rozdzielać zakresy oraz nazwane zakresy za pomocą Aspose.Cells for C++ API. Interfejs API zapewnia wiele dodatkowych funkcji do pracy z plikami programu Excel, które można szczegółowo poznać, odwiedzając oficjalną dokumentację. W przypadku jakichkolwiek pytań prosimy o kontakt na naszym bezpłatnym forum pomocy technicznej.