NumPy jest jedną z najpopularniejszych bibliotek w Python. Napędza naukę danych, uczenie maszynowe i analizę numeryczną. Wielu programistów używa tablic NumPy (ndarray), aby szybko obsługiwać duże zbiory danych.

W naszym poprzednim poście na blogu wyjaśniliśmy, jak przekształcać pliki Excel na tablice NumPy. Ten proces jest przydatny, gdy musisz wprowadzić zewnętrzne dane do Python w celu analizy. Ale co jeśli chcesz odwrotności? Wiele razy musisz eksportować wyniki Python z NumPy do Excela w celach raportowania i udostępniania. Excel jest szeroko stosowany w firmach, szkołach i organizacjach, co czyni go idealnym formatem do współpracy.

W tym przewodniku pokażemy krok po kroku, jak przekonwertować NumPy na Excel za pomocą Python i Aspose.Cells for Python przez .NET.

Dlaczego konwertować NumPy do Excela?

NumPy jest idealny do obliczeń i analizy w Python. Ale często musimy dzielić się wynikami z innymi. Większość użytkowników biznesowych woli Excela, ponieważ jest znajomy i łatwy w użyciu.

Oto kilka powszechnych powodów, dla których możesz potrzebować eksportować NumPy do Excela:

  • Raportowanie danych: Przekonwertuj przetworzone dane na pliki Excel dla menedżerów lub klientów.
  • Współpraca: Podziel się wynikami z członkami zespołu, którzy nie korzystają z Python.
  • Analiza biznesowa: Połącz wyniki NumPy z istniejącymi raportami i pulpitami Excela.
  • Wizualizacja: Użyj wykresów i tabel przestawnych w Excelu, aby uczynić dane bardziej znaczącymi.

Excel to uniwersalny format. Łączy różnicę między programistami Python a użytkownikami nietechnicznymi. Eksportując tablice NumPy do Excela, sprawiasz, że twoje dane są dostępne, użyteczne i łatwe do zrozumienia.

Python NumPy Excel Library

Aspose.Cells for Python to potężna biblioteka arkuszy kalkulacyjnych. Umożliwia tworzenie, edytowanie i przetwarzanie plików Excel bez instalowania programu Microsoft Excel. To najlepsza biblioteka Excel dla Python, zaprojektowana dla programistów, którzy potrzebują pełnej kontroli nad dokumentami Excel. Możesz:

  • Załaduj i zapisz pliki Excela w różnych formatach.
  • Pracuj z arkuszami kalkulacyjnymi, tabelami, zakresami i wykresami.
  • Importuj i eksportuj dane z obiektów Python, w tym tablic NumPy.
  • Obsługuj duże zbiory danych z wysoką szybkością i dokładnością.

Najlepszą częścią jest to, że Aspose.Cells działa niezależnie. Nie potrzebujesz Excela ani żadnego zewnętrznego oprogramowania. Działa płynnie w Twoich aplikacjach Python i dobrze integruje się z naukowymi przepływami pracy. Czyni to go niezawodnym rozwiązaniem do konwertowania danych NumPy na pliki Excel.

Konwertuj NumPy na Excel w Python

Konwersja tablicy NumPy do Excela za pomocą Aspose.Cells jest prosta. Wykonaj te szybkie kroki:

Krok 1: Zainstaluj Aspose.Cells for Python za pośrednictwem .NET

Zainstaluj pakiet za pomocą pip:

pip install aspose-cells-python

Krok 2: Importuj wymagane biblioteki

W swoim skrypcie Python zaimportuj NumPy i Aspose.Cells:

import numpy as np
import aspose.cells as cells

Krok 3: Utwórz przykładową tablicę NumPy

Aby przetestować, utwórz prostą tablicę 2D:

data = np.array([[1, 2, 3],
                 [4, 5, 6],
                 [7, 8, 9]])

Krok 4: Zdefiniuj funkcję niestandardową – insertnumpyarray

Wartości NumPy często pojawiają się jako typy takie jak numpy.int64, numpy.float32 lub numpy.bool. Te muszą być konwertowane na natywne typy Python przed zapisaniem do komórek Excela.

Funkcja pomocnicza poniżej wykonuje tę konwersję i wstawia tablicę bezpośrednio do arkusza, zaczynając od podanego wiersza i kolumny:

# Własna funkcja do wstawiania tablicy NumPy do arkusza kalkulacyjnego
def insert_numpy_array(sheet, ndarray, start_row=0, start_col=0):
    rows, cols = ndarray.shape
   for r in range(rows):
       for c in range(cols):
            value = ndarray[r, c]
            # Przekształć typy NumPy na natywne typy Python
            if isinstance(value, (np.integer,)):
                value = int(value)
            elif isinstance(value, (np.floating,)):
                value = float(value)
            elif isinstance(value, (np.bool_,)):
                value = bool(value)
            elif isinstance(value, (np.str_, np.str_)):
                value = str(value)
            sheet.cells.get(start_row + r, start_col + c).put_value(value)
            

W następnych sekcjach zaprezentujemy, jak wprowadzać dane NumPy do Workbook, Worksheet, ListObject, Range i Named Range. Przykłady kodu w nadchodzących sekcjach korzystają z funkcji pomocniczej zdefiniowanej w sekcji Krok 4: Funkcja niestandardowa.

Jak przekształcić macierz NumPy ndarray na skoroszyt Excela

Możesz stworzyć kompletny skoroszyt Excela z tablicy NumPy w zaledwie kilku linijkach. Ta metoda jest idealna, gdy chcesz wyeksportować wyniki analizy danych, wyniki uczenia maszynowego lub zestaw danych tabelarycznych do profesjonalnego pliku Excela, który można udostępnić lub dalej przetwarzać.

Postępuj zgodnie z poniższymi krokami, aby przekonwertować ndarray NumPy na skoroszyt Excel:

  1. Stwórz 2D tablicę NumPy z danymi.
  2. Zainicjuj nowy, pusty skoroszyt za pomocą klasy Workbook.
  3. Dodaj nowy arkusz do skoroszytu, używając metody worksheets.add().
  4. Uzyskaj dostęp do nowego arkusza roboczego za pomocą jego indeksu.
  5. Przejdź przez tablicę NumPy i wstaw wartości do komórek arkusza kalkulacyjnego.
  6. Zapisz skoroszyt jako plik Excel.

Poniższy przykład kodu pokazuje, jak przekonwertować tablicę NumPy ndarray na skoroszyt Excel.

# Utwórz tablicę NumPy
data = np.array([[1, 2, 3],
                 [4, 5, 6],
                 [7, 8, 9]])

# Konwertuj tablicę NumPy na skoroszyt Excel
workbook = cells.Workbook()

# Dodaj nowy arkusz kalkulacyjny
new_sheet_index = workbook.worksheets.add()
worksheet = workbook.worksheets.get(new_sheet_index)

# Wstaw tablicę do nowego arkusza począwszy od komórki A1
insert_numpy_array(worksheet, data)

# Zapisz skoroszyt jako plik Excel
workbook.save("numpy_to_workbook.xlsx")
Jak przekonwertować NumPy na skoroszyt Excel

Jak przekonwertować NumPy na skoroszyt Excel

Wstawianie tablicy NumPy ndarray do arkusza kalkulacyjnego

Czasami masz już skoroszyt i chcesz tylko wstawić dane NumPy do jednego arkusza.

Postępuj zgodnie z poniższymi krokami, aby przekonwertować ndarray NumPy na Arkusz:

  1. Stwórz 2D tablicę NumPy z danymi.
  2. Załaduj istniejący plik Excel za pomocą klasy Workbook.
  3. Wybierz arkusz roboczy, w którym chcesz umieścić dane.
  4. Przejdź przez tablicę NumPy i wstaw wartości do komórek arkusza.
  5. Zapisz skoroszyt jako plik Excel.

Następujący przykład kodu pokazuje, jak wstawić tablicę NumPy ndarray do konkretnego arkusza roboczego w skoroszycie programu Excel:

# Utwórz tablicę NumPy
data = np.array([['City', 'Region', 'Store'], ['Chicago', 'Central', 3055], ['New York', 'East', 3036],
                 ['Detroit', 'Central', 3074]])

# Konwertuj tablicę NumPy na skoroszyt Excel
workbook = cells.Workbook("numpy_to_workbook.xlsx")

# Uzyskaj dostęp do pierwszego arkusza kalkulacyjnego.
sheet = workbook.worksheets.get(0)

# Wstaw tablicę NumPy do arkusza poczynając od A1
insert_numpy_array(sheet, data, 0, 0)

# Zapisz skoroszyt jako plik Excel
workbook.save("numpy_to_worksheet.xlsx")
Jak przekonwertować ndarray NumPy na arkusz kalkulacyjny

Jak przekonwertować ndarray NumPy na arkusz kalkulacyjny

Jak skonwertować ndarray NumPy na ListObject (Tabela Excel)

Tabele Excel (zwane również ListObjects) to potężny sposób organizacji i analizy danych. Dzięki Aspose.Cells możesz bezpośrednio zaimportować tablicę NumPy do ListObject.

Proszę wykonać poniższe kroki, aby przekonwertować ndarray NumPy na ListObject (Tabela Excel):

  1. Stwórz dwuwymiarową tablicę NumPy z przykładowymi danymi.
  2. Zainicjuj nowy skoroszyt i uzyskaj dostęp do pierwszego arkusza.
  3. Wstaw dane NumPy do komórek arkusza kalkulacyjnego za pomocą funkcji pomocniczej.
  4. Zdefiniuj początkowe i końcowe wiersze oraz kolumny w oparciu o wymiary tablicy.
  5. Dodaj obiekt ListObject do arkusza kalkulacyjnego, używając worksheet.listobjects.add().
  6. Przypisz nazwę wyświetlania do ListObject.
  7. Zapisz skoroszyt jako plik Excel.

Następujący przykład kodu pokazuje, jak przekonwertować tablicę NumPy ndarray na tabelę Excela:

# Utwórz tablicę NumPy
data = np.array([[1, 2, 3],
                 [4, 5, 6],
                 [7, 8, 9]])

# Utwórz nowy skoroszyt Excel
workbook = cells.Workbook()
worksheet = workbook.worksheets.get(0)

# Wstaw tablicę NumPy do arkusza, zaczynając od komórki A1
insert_numpy_array(worksheet, data)

# Zdefiniuj zakres dla ListObject
start_row, start_col = 0, 0
end_row, end_col = data.shape[0] - 1, data.shape[1] - 1

# Dodaj ListObject (Tabela Excel) z danych NumPy
index = worksheet.list_objects.add(start_row, start_col, end_row, end_col, True)
list_object = worksheet.list_objects[index]

# Ustaw nazwę wyświetlaną dla tabeli
list_object.display_name = "NumPyTable"

# Zapisz skoroszyt
workbook.save("numpy_to_listobject.xlsx")
Jak przekonwertować obiekt ndarray NumPy na ListObject (tabela Excel)

Jak przekonwertować ndarray NumPy na ListObject (Tabela Excel)

Konwertuj ndarray NumPy na zakres

Czasami możesz chcieć umieścić tablicę NumPy w określonym zakresie komórek. Ta metoda jest idealna, gdy potrzebujesz precyzyjnego umiejscowienia danych w arkuszach kalkulacyjnych, na przykład wypełniając zdefiniowany obszar tabeli lub eksportując wyniki analizy do wybranego bloku komórek.

Postępuj zgodnie z poniższymi krokami, aby przekonwertować ndarray NumPy na Range:

  1. Utwórz 2D ndarray NumPy.
  2. Utwórz nowy skoroszyt lub otwórz istniejący.
  3. Wybierz arkusz docelowy.
  4. Przejdź przez wartości ndarray i wstaw je do odpowiadających komórek Excela.
  5. Stwórz obiekt Range za pomocą cells.createrange(startcell, endcell).
  6. Eksportuj arkusz roboczy z wypełnionym zakresem do pliku Excel.

Poniższy przykład kodu pokazuje, jak wstawić tablicę NumPy ndarray do zakresu Excela:

import numpy as np
from datetime import datetime
from aspose.cells import Workbook, CellsHelper

# Pomocnik do bezpiecznego umieszczania wartości NumPy w komórkach
def put_cell_value(cells, raw_value, row, col):
    cell = cells.get(row, col)
    if isinstance(raw_value, (np.bool_,)):
        value = bool(raw_value)
    elif isinstance(raw_value, (np.integer,)):
        value = int(raw_value)
    elif isinstance(raw_value, (np.floating,)):
        value = float(raw_value)
    elif isinstance(raw_value, (np.datetime64,)):
        # Konwertuj numpy datetime64 → Python datetime → ciąg kompatybilny z Excelem
        value = str(np.datetime_as_string(raw_value, unit='D'))
    else:
        value = raw_value
    cell.put_value(value)

# Function do wstawienia tablicy NumPy do komórek i zwrócenia zakresu
def numpy_to_range(cells, data, start_row=0, start_col=0):
    rows, cols = data.shape
   for i in range(rows):
       for j in range(cols):
            put_cell_value(cells, data[i, j], start_row + i, start_col + j)

    # Zdefiniuj zakres na podstawie komórki początkowej/końcowej.
    start_cell = CellsHelper.cell_index_to_name(start_row, start_col)
    end_cell = CellsHelper.cell_index_to_name(start_row + rows - 1, start_col + cols - 1)
    return cells.create_range(start_cell, end_cell)

# Utwórz przykładową tablicę NumPy
data = np.array([
    ['City', 'Region', 'Store', 'Date'],
    ['Chicago', 'Central', 3055, np.datetime64('2025-01-15')],
    ['New York', 'East', 3036, np.datetime64('2025-02-10')],
    ['Detroit', 'Central', 3074, np.datetime64('2025-03-05')]
])

# Utwórz nowy skoroszyt i uzyskaj pierwszą kartę roboczą.
workbook = Workbook()
worksheet = workbook.worksheets.get(0)
cells = worksheet.cells

# Wstaw ndarray do arkusza jako Zakres
range_obj = numpy_to_range(cells, data, 0, 0)

print("Row count:", range_obj.row_count)
print("Column count:", range_obj.column_count)

# Zapisz skoroszyt
workbook.save("numpy_to_range.xlsx")
Jak przekonwertować ndarray NumPy na zakres

Jak przekonwertować tablicę NumPy ndarray na zakres

Jak przekonwertować ndarray NumPy na nazwę (zakres nazwany)

Czasami możesz chcieć przypisać znaczącą nazwę do określonego zakresu danych w Excelu. Ułatwia to odniesienie do danych w formułach, wykresach lub innych arkuszach roboczych. W tej sekcji pokażemy ci, jak przekształcić NumPy na nazwany zakres w Excelu przy użyciu Python i Aspose.Cells. Tworząc nazwany zakres, możesz efektywniej pracować z danymi NumPy wewnątrz Excela.

Postępuj zgodnie z poniższymi krokami, aby przekonwertować tablicę NumPy ndarray na nazwany zakres w programie Excel, używając Aspose.Cells.

  1. Utwórz tablicę NumPy w Python.
  2. Utwórz nowy skoroszyt i uzyskaj dostęp do docelowego arkusza kalkulacyjnego.
  3. Przechodź przez tablicę i wstaw każdą wartość do arkusza kalkulacyjnego.
  4. Zdefiniuj zakres obejmujący importowane dane.
  5. Nadanie nazwy temu zakresowi.
  6. Zapisz skoroszyt jako plik Excel.

Następny przykład kodu pokazuje, jak wstawić tablicę NumPy ndarray do nazwanego zakresu w Excelu:

import numpy as np
import aspose.cells
from aspose.cells import Workbook, CellsHelper

# Pomocnicza funkcja do wstawiania danych NumPy do komórek arkusza kalkulacyjnego
def put_cell_value(cells, raw_value, row, column):
    if isinstance(raw_value, (np.bool_)):
        value = bool(raw_value)
    elif isinstance(raw_value, (np.integer)):
        value = int(raw_value)
    elif isinstance(raw_value, (np.floating)):
        value = float(raw_value)
    elif isinstance(raw_value, (np.datetime64)):
        value = str(np.datetime_as_string(raw_value, unit='D'))
    else:
        value = str(raw_value)
    cells.get(row, column).put_value(value)

def insert_ndarray_into_cells(cells, data, start_row, start_col):
    row_count = data.shape[0]
    col_count = data.shape[1]

   for r in range(row_count):
       for c in range(col_count):
            put_cell_value(cells, data[r][c], start_row + r, start_col + c)

    # Zwróć pokrytą powierzchnię komórki
    end_row = start_row + row_count - 1
    end_col = start_col + col_count - 1
    return (start_row, start_col, end_row, end_col)

# ---------------------------
# Main Code
# ---------------------------

# Utwórz przykładową tablicę NumPy
data = np.array([
    ['Product', 'Region', 'Sales'],
    ['Laptop', 'East', 1200],
    ['Phone', 'West', 950],
    ['Tablet', 'North', 740]
])

# Utwórz nowy skoroszyt
workbook = Workbook()
worksheet = workbook.worksheets.get(0)
cells = worksheet.cells

# Wstaw ndarray do komórek zaczynając od (0,0)
(start_row, start_col, end_row, end_col) = insert_ndarray_into_cells(cells, data, 0, 0)

# Get Excel cell references
start_cell = CellsHelper.cell_index_to_name(start_row, start_col)
end_cell = CellsHelper.cell_index_to_name(end_row, end_col)

# Utwórz nazwany zakres dla tego ndarray
idx = workbook.worksheets.names.add("SalesData")  # returns index
named_range = workbook.worksheets.names[idx]  # get the Name object
named_range.refers_to = f"={worksheet.name}!{start_cell}:{end_cell}"

# Zapisz skoroszyt
workbook.save("numpy_to_named_range.xlsx")
Jak przekształcić ndarray NumPy na nazwę (Zakres nazwany)

Jak przekonwertować macierz NumPy ndarray na nazwę (zakres nazwany)

Rozpocznij pracę z Aspose.Cells for Python

Widzieliście teraz, jak łatwo jest przekształcić tablice NumPy na Excel za pomocą Aspose.Cells. Biblioteka daje pełną kontrolę nad skoroszytami, arkuszami kalkulacyjnymi, tabelami, zakresami i nazwanymi zakresami.

Oto kilka przydatnych linków, które mogą poprawić Twoje zrozumienie:

Uzyskaj darmową tymczasową licencję i zacznij korzystać z Aspose.Cells już dziś, aby Twoje dane Python były w pełni kompatybilne z procesami Excel.

NumPy do Excela: Najczęściej zadawane pytania

Q1: Czy muszę mieć zainstalowany Microsoft Excel, aby korzystać z Aspose.Cells?

Nie. Aspose.Cells działa niezależnie. Nie potrzebujesz zainstalowanego Excela ani żadnego innego oprogramowania.

Q2: Czy Aspose.Cells może obsługiwać duże tablice NumPy?

Tak. Biblioteka jest zoptymalizowana pod kątem dużych zbiorów danych i działa dobrze nawet z dużymi tablicami.

Q3: Jakie formaty Excela są obsługiwane?

Możesz zapisać swoje dane NumPy do formatów arkuszy kalkulacyjnych XLSX, XLS, CSV, ODS i wielu innych.

Q4: Czy mogę sformatować komórki Excela po wyeksportowaniu danych NumPy?

Tak. Możesz stosować style, formaty liczb, formuły, a nawet tworzyć wykresy lub tabele przestawne.

Q5: Czy istnieje darmowa wersja Aspose.Cells?

Tak. Możesz pobrać bezpłatną wersję próbną lub poprosić o tymczasową licencję do testowania.

Wniosek

NumPy jest podstawowym narzędziem do analizy danych i analizy numerycznej w Python, ale raportowanie w rzeczywistości często wymaga Excela. Dzięki Aspose.Cells for Python za pośrednictwem .NET, konwersja NumPy na Excel staje się płynna i elastyczna. W tym przewodniku zbadaliśmy różne metody: eksportowanie tablic NumPy do pełnego skoroszytu, wstawianie danych do arkusza kalkulacyjnego, formatowanie jako ListObject (tabela Excela), mapowanie tablic na zakres oraz przypisywanie ich do nazwanych zakresów. Każde podejście ma swoje unikalne przeznaczenie. Łącząc moc NumPy z elastycznością Aspose.Cells, możesz efektywnie przejść od analizy opartej na Python do profesjonalnych raportów w Excelu, zapewniając, że twoje dane są zarówno dostępne, jak i gotowe do prezentacji.

Jeśli masz jakiekolwiek pytania, czuj się swobodnie, aby zapytać na naszym free support forum, a my z radością pomożemy.

See Also