Det finns några sätt att ange att ett diagram ska visas på ett nytt ark i den aktuella arbetsboken, beroende på hur du skapar diagrammet (t.ex. manuellt i Excel, med VBA -kod eller genom ett bibliotek som PANDAS i Python). Jag täcker de vanliga metoderna:
1. Manuellt i Excel (GUI)
* Detta är det enklaste om du arbetar direkt inom Excel -applikationen.
1. Skapa diagrammet: Välj de data du vill kartlägga. Gå till fliken "Infoga" och välj den diagramtyp du vill ha (t.ex. kolumn, paj, linje). Diagrammet kommer initialt att visas inbäddat i det aktuella arket.
2. Flytta diagrammet till nytt ark:
* Metod 1 (högerklicka): Högerklicka på diagramområdet. Välj "Flytta diagram ...".
* Metod 2 (flik för diagram): Välj diagrammet. Fliken "Diagramkonstruktion" kommer att visas i bandet. Klicka på knappen "Flytta diagram" (vanligtvis beläget på höger sida).
3. Flytta dialogrutan: I dialogrutan "flytta diagram" väljer du "nytt ark:" och ger valfritt arket ett namn. Klicka på "OK".
2. VBA (Visual Basic for Applications)
* Den här metoden används när du vill automatisera diagramskapande och placering med hjälp av VBA -kod i din Excel -arbetsbok.
`` VBA
Sub createchartonnewsheet ()
Dim CHT som diagram
DIM RNG AS RANGE
Dim Newsht som kalkylblad
'Definiera dataintervallet
Ställ in RNG =Thisworkbook.Sheets ("Sheet1"). Range ("A1:B10") 'Justera arknamn och intervall
'Skapa ett nytt kalkylblad för att hålla diagrammet
Ställ in Newsht =Thisworkbook.Sheets.Add (After:=Thisworkbook.Sheets (Thisworkbook.Sheets.Count) 'Lägger till ark i slutet
'Alternativt, lägg till arket i början:
'Ställ in Newsht =Thisworkbook.Sheets.Add (före:=Thisworkbook.Sheets (1))
'Skapa diagrammet på det nya arket
Ställ in cht =diagram.Add
Med CHT
.ChartType =xlColumnClustered 'Justera diagramtyp
.Setsourcedata källa:=rng
.Lokalisering var:=xllocationAsnewsheet, namn:=newsht.name 'inställd plats
.HasLegend =True 'Exempel:Inkludera en legend
.ChartTitle.Text ="My Chart Title" 'Exempel:Ställ in titeln
'Ytterligare diagramanpassningsalternativ kan läggas till här
Upphöra med
'Valfritt:Byt namn på det nya arket (redan gjort ovan via plats)
'Newsht.name ="mychartsheet"
'Valfritt:Aktivera diagrammet
Newsht.Activate
'Rengör objektvariabler
Ställ in CHT =ingenting
Ställ in RNG =ingenting
Ställ in Newsht =ingenting
Slutsub
`` `
* Förklaring:
* `DIM CHT AS CHART ':förklarar en variabel för att hålla diagramobjektet.
* `Dim rng som intervall ':förklarar en variabel för att hålla dataintervallet.
* `Dim Newsht som kalkylblad ':förklarar en variabel för att hålla det nya kalkylbladet.
* `Set Rng =Thisworkbook.Sheets (" Sheet1 "). Range (" A1:B10 ")`:Definierar dataintervallet som ska användas för diagrammet. Viktigt:Ändra `" Sheet1 "` och `" A1:B10 "` till ditt faktiska arknamn och dataintervall.
* `Ställ in Newsht =Thisworkbook.Sheets.Add (efter:=Thisworkbook.Sheets (Thisworkbook.Sheets.Count))`:Lägger till ett nytt kalkylblad * efter * det sista arket i arbetsboken. Du kan använda `före:=thisworkbook.blad (1)` för att lägga till det som * första * arket.
* `Set cht =diagram.Add`:Skapar ett nytt diagramobjekt. Detta är nyckeln. `Charts.Add` skapar ett diagram i * ChartObjects * -samlingen.
* `.ChartType =xlColumnClustered`:Ställer in diagramtypen. Använd lämplig `XlChartType` konstant (t.ex.` xlline`, `xlpie`,` xlBarclustered`).
* `. SetSourcedata källa:=rng`:Ställer in datakällan för diagrammet.
* `.Lokation där:=xllocationAsnewsheet, namn:=newsht.name`:Detta är den avgörande linjen. Det flyttar diagrammet till ett nytt ark.
* `Var:=XllocationAsnewsheet`:Anger att diagrammet ska placeras på ett nytt ark.
* `Namn:=Newsht.Name`:Ställer in namnet på det nya arket till diagramnamnet.
* Viktiga överväganden för VBA:
* Felhantering: Lägg till felhantering (t.ex. `On Error Goto ErrorHandler`) för att göra din kod mer robust. Vad händer om det angivna arket inte finns, eller att intervallet är ogiltigt?
* Objektvariabler: Rengör alltid dina objektvariabler genom att ställa in dem till "ingenting" (som visas) för att släppa minnet.
* diagramanpassning: `.ChartTitle.text`,` .haslegend`, etc. Linjer är bara exempel. VBA erbjuder omfattande alternativ för att anpassa alla aspekter av ett diagram (axlar, etiketter, serieformatering etc.). Utforska Excel VBA -objektmodellen för diagram.
* Säkerhet: Om din arbetsbok innehåller VBA-kod måste den troligen sparas som en makroaktiverad arbetsbok (`.xlsm`). Användare kommer också att behöva aktivera makron i Excel.
3. Python med pandor och openpyxl (eller xlsxwriter)
* Detta används när du arbetar med data i Python och vill skapa Excel -diagram.
`` `python
Importera pandor som PD
Importera OpenPYXL
från OpenPyxl Import Workbook
från OpenPyxl.Chart Import Barchart, Reference, Series
# Skapa några provdata
data ={'kategori':['a', 'b', 'c', 'd'],
'Värde':[10, 15, 13, 18]}
df =pd.dataframe (data)
# Skapa en PANDAS Excel -författare som använder OpenPyXL som motorn
författare =pd.excelwriter ("chart_example.xlsx", motor ='openpyxl')
# Skriv dataframe till ett ark med namnet 'Data'
df.to_excel (författare, ark_name ='data', index =falsk)
# Få arbetsboken och kalkylbladet
Workbook =Writer.Book
kalkylblad =Writer.Sheets ['data']
# Skapa en barchart
diagram =barchart ()
diagram.type ="col"
diagram.style =10
diagram.title ="försäljning efter kategori"
diagram.y_axis.title ='värde'
diagram.x_axis.title ='kategori'
# Definiera dataintervallet (exklusive rubrikraden)
data_range =referens (kalkylblad, min_col =2, min_row =2, max_col =2, max_row =len (data ['kategori']) + 1) #column b (värden), hopphuvud
kategorier =referens (kalkylblad, min_col =1, min_row =2, max_col =1, max_row =len (data ['kategori']) + 1) #column a (kategorier), hopphuvud
# Lägg till dataserien i diagrammet
Series =Series (data_range, title_from_data =falsk) #Use .Title ="" För att manuellt ställa in titeln
diagram.append (serie)
diagram.set_category (kategorier)
# Skapa ett nytt kalkylblad för diagrammet
Chart_Sheet =Workbook.Create_Sheet ("Chart")
# Lägg till diagrammet i det nya arket
Chart_Sheet.Add_Chart (diagram, "A1") # Justera cellposition efter behov
# Spara Excel -filen
Writer.Close ()
Skriv ut ("Excel File 'Chart_example.xlsx' skapat med diagram på ett nytt ark.")
`` `
* Förklaring:
1. Importera bibliotek: Importera `pandas`,` openpyxl` och de nödvändiga modulerna från `openpyxl.chart`. Se till att du har dessa bibliotek installerade (`pip install pandas openpyxl`).
2. Skapa data (PANDAS): Skapa dina data med PANDAS DATAFRAMES.
3. Skapa Excel -författare: Skapa ett "PD.ExcelWriter" -objekt som anger "OpenPyxl" som motorn. Detta gör att du kan använda "OpenPyxl" -funktionalitet för att skapa diagrammet.
4. Skriv data till ark: Skriv dataframe till ett ark i Excel -filen.
5. Få arbetsbok och arbetsbladobjekt: Åtkomst till "Workbook" och "kalkylblad" från "Excelwriter".
6. Skapa diagram: Skapa ett diagramobjekt (t.ex. `Barchart ').
7. Definiera dataintervall (referens): Använd `openpyxl.chart.reference` objekt för att definiera dataintervallet för diagrammet. Var noggrann uppmärksamhet på parametrarna "min_col", "min_row", "max_col" och "max_row".
8. Skapa serie: Skapa ett "serie" -objekt från dataintervallet. "Series` representerar de datapunkter som ska planeras.
9. Tilläggsserien till diagram: Lägg till "serien" i "diagrammet".
10. Ställ in kategorier Ställ in kategorierna
11. Skapa nytt ark: Skapa ett nytt kalkylblad för diagrammet med `workbook.create_sheet (" diagram ")`. Namnet på det nya arket är "diagram".
12. Lägg till diagram i ark: Använd `Chart_Sheet.Add_Chart (diagram," A1 ")` för att lägga till diagrammet i det nya arket. Argumentet "A1" "anger den övre vänstra cellen där diagrammet kommer att placeras. Justera detta efter behov.
13. Spara arbetsbok: Spara Excel -filen med `writer.close ()`.
* Nyckelpunkter för Python:
* bibliotek: Du * måste * installera de nödvändiga biblioteken:`pip installera pandas openpyxl` (eller` pip installera xlsxwriter` om du väljer den motorn).
* openpyxl vs. xlsxwriter:
* `OpenPyxl`:Kan läsa och skriva befintliga Excel -filer. Mer flexibel för komplex formatering.
* `Xlsxwriter`:Utmärkt för att skapa * nya * Excel -filer, särskilt stora. Ofta snabbare än "openpyxl" för att skriva. Det kan dock inte ändra befintliga filer. Den största skillnaden för detta problem är att `xlsxwriter` bara kan skapa diagram på arket där data är.
* Dataintervall: "Referens" -objekten är avgörande. Se till att `min_col`,` min_row`, `max_col` och` max_row 'värden är korrekta för dina data. Kom ihåg att Excel-kolumner och rader är 1-baserade, inte 0-baserade som pythonlistor.
* diagramanpassning: `OpenPyxl` och` xlsxwriter 'har omfattande alternativ för att anpassa diagram (titlar, axlar, färger, etiketter etc.). Konsultera deras dokumentation.
Sammanfattningsvis:
* Om du gör det manuellt i Excel är dialogrutan "Move Chart" det enklaste.
* Om du automatiserar med VBA är egenskapen ".location" nyckeln.
* Om du använder Python kräver `OpenPyxl` och` xlsxwriter` mer kod, men ger dig kraftfulla diagramanpassningsalternativ. "OpenPyxl" krävs vid modifiering av en befintlig Excel -fil.
Välj den metod som bäst passar dina behov och den miljö du arbetar i. Var noga med att justera kodexemplen så att de matchar dina specifika data, arknamn och önskad diagramtyp och utseende. Kom ihåg att installera de nödvändiga biblioteken om du använder Python.