NumPy är ett av de mest populära biblioteken i Python. Det driver datavetenskap, maskininlärning och numerisk analys. Många utvecklare använder NumPy-arrayer (ndarray) för att hantera stora datamängder snabbt.

I vår tidigare blogginlägg förklarade vi hur man konverterar Excel-filer till NumPy-arrayer. Det arbetsflödet är användbart när du behöver ta in extern data i Python för analys. Men vad händer om du vill ha motsatsen? Många gånger behöver du exportera dina Python-resultat från NumPy till Excel för rapportering och delning. Excel är allmänt använt i företag, skolor och organisationer, vilket gör det till det idealiska formatet för samarbete.

I den här guiden kommer vi att visa dig steg för steg hur man konverterar NumPy till Excel med Python och Aspose.Cells för Python via .NET.

Varför konvertera NumPy till Excel?

NumPy är perfekt för beräkningar och analys inom Python. Men vi behöver ofta dela resultaten med andra. De flesta affärsanvändare föredrar Excel eftersom det är bekant och lätt att använda.

Här är några vanliga anledningar till varför du kan behöva exportera NumPy till Excel:

  • Data reporting: Konvertera bearbetad data till Excel-filer för chefer eller kunder.
  • Samarbete: Dela resultat med teammedlemmar som inte använder Python.
  • Affärsanalys: Kombinera NumPy-resultat med befintliga Excel-rapporter och instrumentpaneler.
  • Visualisering: Använd Excel-diagram och pivottabeller för att göra data mer meningsfulla.

Excel är ett universellt format. Det brottas med klyftan mellan Python-utvecklare och icke-tekniska användare. Genom att exportera NumPy-arrayer till Excel gör du dina data tillgängliga, användbara och lätta att förstå.

Python NumPy Excel-bibliotek

Aspose.Cells for Python är ett kraftfullt kalkylbladsbibliotek. Det gör att du kan skapa, redigera och bearbeta Excel-filer utan att behöva installera Microsoft Excel. Det är det bästa Excel-biblioteket för Python, designat för utvecklare som behöver full kontroll över Excel-dokument. Du kan:

  • Ladda och spara Excel-filer i olika format.
  • Arbeta med arbetsblad, tabeller, områden och diagram.
  • Importera och exportera data från Python-objekt, inklusive NumPy-arrayer.
  • Hantera stora datamängder med hög hastighet och noggrannhet.

Den bästa delen är att Aspose.Cells fungerar oberoende. Du behöver inte Excel eller någon extern programvara. Det fungerar smidigt i dina Python-applikationer och integreras väl med vetenskapliga arbetsflöden. Detta gör det till en pålitlig lösning för att konvertera NumPy-data till Excel-filer.

Konvertera NumPy till Excel i Python

Att konvertera en NumPy-array till Excel med Aspose.Cells är enkelt. Följ dessa snabba steg:

Steg 1: Installera Aspose.Cells för Python via .NET

Installera paketet med pip:

pip install aspose-cells-python

Steg 2: Importera nödvändiga biblioteki

I din Python-skript, importera NumPy och Aspose.Cells:

import numpy as np
import aspose.cells as cells

Steg 3: Skapa en prov NumPy-array

För testning, skapa en enkel 2D-array:

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

Steg 4: Definiera en anpassad funktion – insertnumpyarray

NumPy-värden kommer ofta i typer som numpy.int64, numpy.float32 eller numpy.bool. Dessa behöver konverteras till inbyggda Python-typer innan de skrivs in i Excel-celler.

Hjälpfunktionen nedan utför denna konvertering och sätter in arrayen direkt i ett kalkylblad som börjar från en angiven rad och kolumn:

# Anpassad funktion för att infoga NumPy-array i kalkylblad
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]
            # Konvertera NumPy-typer till inbyggda Python-typer
            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)
            

I de kommande avsnitten kommer vi att demonstrera hur man infogar NumPy-data i en Arbetsbok, Arbetsblad, ListObject, Område och Namngivet Område. Kodexemplen i de kommande avsnitten använder hjälpfunktionen som definieras i avsnittet Steg 4: Anpassad Funktion.

Hur man konverterar NumPy ndarray till Excel-arbetsbok

Du kan skapa en komplett Excel-arbetsbok från en NumPy-array på bara några rader. Denna metod är perfekt när du vill exportera resultat från dataanalys, maskininlärningsutgångar eller tabulära dataset till en professionell Excel-fil som kan delas eller vidarebearbetas.

Följ stegen nedan för att konvertera NumPy ndarray till Excel-arbetsbok:

  1. Skapa en NumPy 2D-array med dina data.
  2. Initiera en ny tom arbetsbok med hjälp av Workbook-klassen.
  3. Lägg till ett nytt kalkylblad i arbetsboken med hjälp av metoden worksheets.add().
  4. Åtkomst till det nya kalkylbladet via dess index.
  5. Loopa genom NumPy-arrayen och sätt in värden i kalkylbladets celler.
  6. Spara arbetsboken som en Excel-fil.

Följande kodexempel visar hur man konverterar en NumPy ndarray till en Excel-arbetsbok.

# Skapa en NumPy-array
data = np.array([[1, 2, 3],
                 [4, 5, 6],
                 [7, 8, 9]])

# Konvertera NumPy-array till Excel-arbetsbok
workbook = cells.Workbook()

# Lägg till ett nytt kalkylblad
new_sheet_index = workbook.worksheets.add()
worksheet = workbook.worksheets.get(new_sheet_index)

# Infoga arrayen i det nya kalkylbladet med början från cell A1
insert_numpy_array(worksheet, data)

# Spara arbetsboken som Excel-fil
workbook.save("numpy_to_workbook.xlsx")
Hur man konverterar NumPy till Excel-arbetsbok

Hur man konverterar NumPy till Excel-arbetsbok

Infoga NumPy ndarray i arbetsblad

Ibland har du redan en arbetsbok, och du vill bara infoga NumPy-data i ett kalkylblad.

Följ stegen nedan för att konvertera NumPy ndarray till arbetsblad:

  1. Skapa en NumPy 2D-array med dina data.
  2. Ladda en befintlig Excel-fil med hjälp av klassen Workbook.
  3. Välj kalkylbladet där du vill placera datan.
  4. Loopa genom NumPy-arrayen och infoga värden i kalkylblads celler.
  5. Spara arbetsboken som en Excel-fil.

Följande kodexempel visar hur man infogar en NumPy ndarray i ett specifikt kalkylblad i en Excel-arbetsbok:

# Skapa en NumPy-array
data = np.array([['City', 'Region', 'Store'], ['Chicago', 'Central', 3055], ['New York', 'East', 3036],
                 ['Detroit', 'Central', 3074]])

# Konvertera NumPy-array till Excel-arbetsbok
workbook = cells.Workbook("numpy_to_workbook.xlsx")

# Öppna det första kalkylbladet
sheet = workbook.worksheets.get(0)

# Sätt in NumPy-array i kalkylbladet med början från A1
insert_numpy_array(sheet, data, 0, 0)

# Spara arbetsboken som en Excel-fil
workbook.save("numpy_to_worksheet.xlsx")
Hur man konverterar NumPy ndarray till arbetsblad

Hur man konverterar NumPy ndarray till arbetsblad

Hur man konverterar NumPy ndarray till ListObject (Excel-tabell)

Excel-tabeller (även kallade ListObjects) är ett kraftfullt sätt att organisera och analysera data. Med Aspose.Cells kan du direkt importera en NumPy-array till ett ListObject.

Vänligen följ stegen nedan för att konvertera NumPy ndarray till ListObject (Excel-tabell):

  1. Skapa en NumPy 2D-array med exempeldata.
  2. Initiera en ny arbetsbok och få tillgång till det första kalkylbladet.
  3. Sätt in NumPy-data i kalkylbladsceller med hjälp av en hjälpfunktion.
  4. Definiera de starten och slutliga raderna och kolumnerna baserat på arraydimensioner.
  5. Lägg till ett ListObject till kalkylbladet med hjälp av worksheet.listobjects.add().
  6. Tilldela ett visningsnamn till ListObject.
  7. Spara arbetsboken som en Excel-fil.

Följande kodexempel visar hur man konverterar en NumPy ndarray till en Excel-tabell:

# Skapa en NumPy-array
data = np.array([[1, 2, 3],
                 [4, 5, 6],
                 [7, 8, 9]])

# Skapa en ny Excel-arbetsbok
workbook = cells.Workbook()
worksheet = workbook.worksheets.get(0)

# Sätt in NumPy-matrisen i kalkylbladet som börjar från cell A1
insert_numpy_array(worksheet, data)

# Definiera intervall för ListObject
start_row, start_col = 0, 0
end_row, end_col = data.shape[0] - 1, data.shape[1] - 1

# Lägg till ListObject (Excel-tabell) från NumPy-data
index = worksheet.list_objects.add(start_row, start_col, end_row, end_col, True)
list_object = worksheet.list_objects[index]

# Sätt ett visningsnamn för tabellen
list_object.display_name = "NumPyTable"

# Spara arbetsboken
workbook.save("numpy_to_listobject.xlsx")
Hur man konverterar NumPy ndarray till ListObject (Excel-tabell)

Hur man konverterar NumPy ndarray till ListObject (Excel-tabell)

Konvertera NumPy ndarray till Range

Ibland kan du vilja placera en NumPy-array i ett specifikt cellområde. Denna metod är idealisk när du behöver exakt placering av data i kalkylblad, såsom att fylla ett fördefinierat tabellområde eller exportera analysresultat till ett valt cellblock.

Följ stegen nedan för att konvertera NumPy ndarray till Range:

  1. Skapa en 2D NumPy ndarray.
  2. Skapa en ny arbetsbok eller öppna en befintlig.
  3. Välj målbladet.
  4. Loopa genom ndarray-värden och sätt in i motsvarande Excel-celler.
  5. Skapa ett Range-objekt med cells.createrange(startcell, endcell).
  6. Exportera arbetsbladet med det ifyllda området till en Excel-fil.

Följande kodexempel visar hur man infogar en NumPy ndarray i ett Excel-intervall:

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

# Hjälpare för att säkert placera NumPy-värden i celler
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,)):
        # Konvertera numpy datetime64 → Python datetime → Excel-kompatibel sträng
        value = str(np.datetime_as_string(raw_value, unit='D'))
    else:
        value = raw_value
    cell.put_value(value)

# Funktion för att infoga NumPy-array i celler och returnera intervallet
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)

    # Definiera intervallet baserat på start-/slutcell.
    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)

# Skapa en exempel NumPy-array
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')]
])

# Skapa en ny arbetsbok och hämta det första kalkylbladet
workbook = Workbook()
worksheet = workbook.worksheets.get(0)
cells = worksheet.cells

# Infoga ndarray i arbetsbladet som område
range_obj = numpy_to_range(cells, data, 0, 0)

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

# Spara arbetsboken
workbook.save("numpy_to_range.xlsx")
Hur man konverterar NumPy ndarray till Range

Hur man konverterar NumPy ndarray till Range

Hur man konverterar NumPy ndarray till namn (namngiven intervall)

Ibland kan du vilja tilldela ett meningsfullt namn till ett specifikt dataintervall i Excel. Detta gör det enklare att referera till datan i formler, diagram eller andra kalkylblad. I den här avsnittet kommer vi att visa dig hur du konverterar NumPy till Excel Namngivet Område med Python och Aspose.Cells. Genom att skapa ett namngivet område kan du arbeta med din NumPy-data mer effektivt i Excel.

Följ stegen nedan för att konvertera en NumPy ndarray till ett namngivet intervall i Excel med hjälp av Aspose.Cells

  1. Skapa en NumPy-array i Python.
  2. Skapa en ny arbetsbok och få åtkomst till det målarbladet.
  3. Loopa genom arrayen och infoga varje värde i kalkylbladet.
  4. Definiera ett intervall som täcker de importerade uppgifterna.
  5. Ge ett namn till det intervallet.
  6. Spara arbetsboken som en Excel-fil.

Följande kodexempel visar hur man infogar en NumPy ndarray i ett namngivet område i Excel:

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

# Hjälpfunktion för att infoga NumPy-data i kalkylbladets celler
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)

    # Return the covered cell area
    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
# ---------------------------

# Skapa en exempel NumPy-array
data = np.array([
    ['Product', 'Region', 'Sales'],
    ['Laptop', 'East', 1200],
    ['Phone', 'West', 950],
    ['Tablet', 'North', 740]
])

# Skapa en ny arbetsbok
workbook = Workbook()
worksheet = workbook.worksheets.get(0)
cells = worksheet.cells

# Infoga ndarray i celler som börjar på (0,0)
(start_row, start_col, end_row, end_col) = insert_ndarray_into_cells(cells, data, 0, 0)

# Få Excel cellreferenser
start_cell = CellsHelper.cell_index_to_name(start_row, start_col)
end_cell = CellsHelper.cell_index_to_name(end_row, end_col)

# Skapa ett namngivet område för denna 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}"

# Spara arbetsboken
workbook.save("numpy_to_named_range.xlsx")
Hur man konverterar NumPy ndarray till namn (namngivet intervall)

Hur man konverterar NumPy ndarray till namn (namnområde)

Börja med Aspose.Cells för Python

Du har nu sett hur enkelt det är att konvertera NumPy-arrayer till Excel med Aspose.Cells. Biblioteket ger dig full kontroll över arbetsböcker, kalkylblad, tabeller, intervall och namngivna intervall.

Här är några användbara länkar för att öka din förståelse:

Få en gratis tillfällig licens och börja använda Aspose.Cells idag för att göra dina Python-data helt kompatibla med Excel-arbetsflöden.

NumPy till Excel: Vanliga frågor

Q1: Behövs Microsoft Excel installerat för att använda Aspose.Cells?

Nej. Aspose.Cells fungerar oberoende. Du behöver inte Excel eller någon annan programvara installerad.

Q2: Kan Aspose.Cells hantera stora NumPy-arrayer?

Ja. Biblioteket är optimerat för stora datamängder och presterar bra även med stora arrayer.

Q3: Vilka Excel-format stöds?

Du kan spara din NumPy-data i XLSX, XLS, CSV, ODS och många andra kalkylbladsformat.

Q4: Kan jag formatera Excel-celler efter att ha exporterat NumPy-data?

Ja. Du kan tillämpa stilar, nummerformat, formler och till och med skapa diagram eller pivottabeller.

Q5: Finns det en gratisversion av Aspose.Cells?

Ja. Du kan ladda ner en gratis provversion eller begära en tillfällig licens för testning.

Slutsats

NumPy är ett kärnverktyg för datavetenskap och numerisk analys i Python, men verklig rapportering kräver ofta Excel. Med Aspose.Cells för Python via .NET blir konvertering av NumPy till Excel sömlös och flexibel. I den här guiden utforskade vi olika metoder: exportera NumPy-arrayer till en komplett arbetsbok, införa data i ett kalkylblad, formatera som ett ListObject (Excel-tabell), mappa arrayer till ett område och tilldela dem till ett namngivet område. Varje tillvägagångssätt har ett unikt syfte. Genom att kombinera kraften hos NumPy med flexibiliteten i Aspose.Cells kan du effektivt gå från Python-baserad analys till professionella Excel-rapporter, vilket säkerställer att dina data är både tillgängliga och redo för presentation.

Om du har några frågor, tveka inte att fråga på vårt free support forum, och vi kommer att vara glada att hjälpa till.

Se även