Arbetar med Cells GridWeb

Åtkomst till Cells i arbetsbladet

Det här ämnet diskuterar celler och tittar på GridWebs mest grundläggande funktion: åtkomst till celler.

Varje kalkylblad innehåller ett GridCells-objekt, en samling GridCell-objekt. Ett GridCell-objekt representerar en cell i Aspose.Cells.GridWeb. Det är möjligt att komma åt vilken cell som helst med hjälp av GridWeb. Det finns två föredragna metoder:

Nedan diskuteras varje tillvägagångssätt.

Använder Cell Namn

Alla celler har ett unikt namn. Till exempel A1, A2, B1, B2, etc. Aspose.Cells.GridWeb tillåter utvecklare att komma åt vilken cell som helst genom att använda cellnamnet. Skicka helt enkelt cellnamnet (som ett index) till GridCells-samlingen i GridWorksheet.

For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
//Accessing the worksheet of the Grid that is currently active
GridWorksheet sheet = gridweb.getWorkSheets().get(gridweb.getActiveSheetIndex());
//Accessing "B1" cell of the worksheet
GridCell cell = sheet.getCells().get("B1");

Använda rad- och kolumnindex

En cell kan också kännas igen på sin plats i termer av rad- och kolumnindex. Skicka bara en cells rad- och kolumnindex till GridCells-samlingen i GridWorksheet. Detta tillvägagångssätt är snabbare än ovanstående.

For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
//Accessing the worksheet of the Grid that is currently active
GridWorksheet sheet = gridweb.getWorkSheets().get(gridweb.getActiveSheetIndex());
//Accessing "B1" cell of the worksheet using its row and column indices
GridCell cell = sheet.getCells().get(0, 1);

Få åtkomst till och ändra värdet på en Cell

Åtkomst till Cells i arbetsbladet diskuterade tillgång till celler. Det här ämnet utökar den diskussionen till att visa hur man kommer åt och ändrar cellvärden med hjälp av GridWeb API.

Få åtkomst till och ändra en Cells värde

Strängvärden

Innan du kommer åt och ändrar värdet på en cell måste du veta hur du kommer åt celler. För detaljer om de olika metoderna för att komma åt celler, seÅtkomst till Cells i arbetsbladet.

Varje cell har en egenskap som heter getStringValue(). När en cell väl har nåtts kan utvecklare komma åt metoden getStringValue() för att komma åt cellsträngsvärdet.

For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
//Accessing the worksheet of the Grid that is currently active
GridWorksheet sheet = gridweb.getWorkSheets().get(gridweb.getActiveSheetIndex());
//Accessing "B1" cell of the worksheet
GridCell cell = sheet.getCells().get("B1");
//Inserting & modifying the string value of "B1" cell
cell.putValue("Hello Aspose.Grid");

Alla typer av värden

Aspose.Cells.GridWeb tillhandahåller också en speciell metod, putValue, för varje cell. Med den här metoden är det möjligt att infoga eller ändra vilken typ av värde som helst (Boolean, int, double, DateTime och string) i en cell.

For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
//Accessing the worksheet of the Grid that is currently active
GridWorksheet sheet = gridweb.getWorkSheets().get(gridweb.getActiveSheetIndex());
//Accessing "B1" cell of the worksheet
GridCell cell = sheet.getCells().get("B1");
//Putting a value in "B1" cell
cell.putValue(Calendar.getInstance());

Det finns också en överbelastad version av putValue-metoden som kan ta vilken typ av värde som helst i strängformat och konvertera det till en korrekt datatyp automatiskt. För att få det att hända, skicka det booleska värdet true till en annan parameter i putValue-metoden som visas nedan i exemplet.

For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
//Accessing the worksheet of the Grid that is currently active
GridWorksheet sheet = gridweb.getWorkSheets().get(gridweb.getActiveSheetIndex());
//Accessing "B1" cell of the worksheet
GridCell cell = sheet.getCells().get("B1");
//Putting a numeric value as string in "B1" cell that will be converted to a suitable data type automatically
cell.putValue("19.4", true);

Lägger till formler till Cells

Den mest värdefulla funktionen som erbjuds av Aspose.Cells.GridWeb är stöd för formler eller funktioner. Aspose.Cells.GridWeb har sin egen Formula Engine som beräknar formlerna i kalkylblad. Aspose.Cells.GridWeb stöder både inbyggda och användardefinierade funktioner eller formler. Det här ämnet diskuterar hur man lägger till formler i celler med Aspose.Cells.GridWeb API i detalj.

Hur lägger man till och beräknar en formel?

Det är möjligt att lägga till, komma åt och ändra formler i celler genom att använda en cells formelegenskap. Aspose.Cells.GridWeb stöder användardefinierade formler som sträcker sig från enkla till komplexa. Men ett stort antal inbyggda funktioner eller formler (liknande Microsoft Excel) levereras också med Aspose.Cells.GridWeb. För att se hela listan över inbyggda funktioner, se dennalista över funktioner som stöds.

For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
//Accessing the worksheet of the Grid that is currently active
GridWorksheet sheet = gridweb.getWorkSheets().get(gridweb.getActiveSheetIndex());
//Putting some values to cells
sheet.getCells().get("A1").putValue("1st Value");
sheet.getCells().get("A2").putValue("2nd Value");
sheet.getCells().get("A3").putValue("Sum");
sheet.getCells().get("B1").putValue(125.56);
sheet.getCells().get("B2").putValue(23.93);
//Calculating all formulas added in worksheets
gridweb.getWorkSheets().calculateFormula();
//Adding a simple formula to "B3" cell
sheet.getCells().get("B3").setFormula("=SUM(B1:B2)");

Formel har lagts till i B3-cellen men inte beräknats av GridWeb

todo:image_alt_text

I ovanstående skärmdump kan du se att en formel har lagts till i B3 men inte har beräknats ännu. För att beräkna alla formler, anrop GridWeb-kontrollens GridWorksheetCollections calculateFormula-metod efter att ha lagt till formler till kalkylblad som visas nedan.

For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
//Calculating all formulas added in worksheets
gridweb.getWorkSheets().calculateFormula();

Användare kan också beräkna formler genom att klickaSkicka in.

Klicka på knappen Skicka på GridWeb

todo:image_alt_text

VIKTIG : Om en användare klickar påSpara ellerÅngra knappar, eller arkflikarna, beräknas alla formler automatiskt av GridWeb.

Formelresultat efter beräkning

todo:image_alt_text

Refererar till Cells från andra arbetsblad

Med hjälp av Aspose.Cells.GridWeb är det möjligt att referera värden lagrade i olika kalkylblad i deras formler, vilket skapar komplexa formler.

Syntaxen för att referera till ett cellvärde från ett annat kalkylblad är SheetName!CellName.

For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
//Accessing the worksheet of the Grid that is currently active
GridWorksheet sheet = gridweb.getWorkSheets().get(gridweb.getActiveSheetIndex());
//Adding a bit complex formula to "A1" cell
sheet.getCells().get("A1").setFormula("=SUM(F1:F7)/ AVERAGE (E1:E7)-Sheet1!C6");

Skapa datavalidering i en GridCell av GridWeb

Aspose.Cells.GridWeb låter dig lägga tillDatavalidering med metoden GridWorksheet.getValidations().add(). Med den här metoden måste du angeCell Räckvidd . Men om du vill skapa en datavalidering i en enda GridCell kan du göra det direkt med metoden GridCell.createValidation(). På samma sätt kan du ta bortDatavalidering från en GridCell med metoden GridCell.removeValidation().

Följande exempelkod skapar enDatavalidering i en cell B3. Om du anger något värde som inte är mellan 20 och 40, visas cellen B3Valideringsfel i formen avRöd XXXX som visas i denna skärmdump.

todo:image_alt_text

For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
//Access first worksheet
GridWorksheet sheet = gridweb.getWorkSheets().get(0);
//Access cell B3
GridCell cell = sheet.getCells().get("B3");
//Add validation inside the gridcell
//Any value which is not between 20 and 40 will cause error in a gridcell
GridValidation val = cell.createValidation(GridValidationType.WHOLE_NUMBER, true);
val.setFormula1("=20");
val.setFormula2("=40");
val.setOperator(OperatorType.BETWEEN);
val.setShowError(true);
val.setShowInput(true);

Skapa anpassade kommandoknappar

Aspose.Cells.GridWeb innehåller specialknappar som Skicka, Spara och Ångra. Alla dessa knappar utför specifika uppgifter för Aspose.Cells.GridWeb. Det är också möjligt att lägga till anpassade knappar som utför anpassade uppgifter. Det här avsnittet förklarar hur du använder den här funktionen.

Följande exempelkod förklarar hur man skapar en anpassad kommandoknapp och hur man hanterar dess klickhändelse. Du kan använda vilken ikon som helst för din anpassade kommandoknapp. Som illustration använde vi denna bildikon.

todo:image_alt_text

Som du kan se i följande skärmdump, när användaren klickar på den anpassade kommandoknappen, lägger den till en text i cell A1 som säger**“Min anpassade kommandoknapp klickas."**

todo:image_alt_text

For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
//Instantiating a CustomCommandButton object
CustomCommandButton button = new CustomCommandButton();
//Setting the command for button
button.setCommand("MyButton");
//Setting text of the button
button.setText("MyButton");
//Setting tooltip of the button
button.setToolTip("My Custom Command Button");
//Setting image URL of the button
button.setImageUrl("icon.png");
//Adding button to CustomCommandButtons collection of GridWeb
gridweb.getCustomCommandButtons().add(button);

Händelsehantering av anpassad kommandoknapp

Följande exempelkod förklarar hur man utför händelsehantering av anpassad kommandoknapp.

For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
//Create custom command event handler to handle the click event
CustomCommandEventHandler cceh=new CustomCommandEventHandler(){
public void handleCellEvent(Object sender, String command){
//Identifying a specific button by checking its command
if (command.equals("MyButton"))
{
//Accessing the cells collection of the worksheet that is currently active
GridWorksheet sheet = gridweb.getWorkSheets().get(gridweb.getActiveSheetIndex());
//Putting value to "A1" cell
sheet.getCells().get("A1").putValue("My Custom Command Button is Clicked.");
sheet.getCells().setColumnWidth(0, 50);
}
}
};
//Assign the custom command event handler created above to gridweb
gridweb.CustomCommand = cceh;

Formatera celler för GridWeb

Möjliga användningsscenarier

GridWeb stöder nu användare att ange celldata i procentformat som 3% och data i cellen kommer automatiskt att formateras som 3,00%. Du måste dock ställa in cellformatet till procentformat som antingen är GridTableItemStyle.NumberType en 9 eller 10. Siffran 9 kommer att formatera 3 % som 3 % men siffran 10 kommer att formatera 3 % som 3,00 %.

Ange Cell Data för GridWeb-arbetsbladet i procentformat

Följande exempelkod ställer in cellen A1 GridTableItemStyle.NumberType som 10, därför formateras indata 3 % automatiskt till 3,00 % som visas på skärmdumpen.

todo:image_alt_text

Exempelkod

For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
//Access cell A1 of first gridweb worksheet
GridCell cellA1 = gridweb.getWorkSheets().get(0).getCells().get("A1");
//Access cell style and set its number format to 10 which is a Percentage 0.00% format
GridTableItemStyle st = cellA1.getStyle();
st.setNumberType(10);
cellA1.setStyle(st);