Obtenir la plage maximale dans une feuille de calcul
Lors de la lecture de données de la feuille de calcul, nous devons connaître la zone maximale.
Lors de la copie de toutes les données d’une feuille de calcul, nous devons connaître la zone maximale.
Lors de l’exportation d’une zone spécifiée en html et pdf, nous devons connaître la zone maximale.
Aspose.Cells pour .Net contient différentes façons de trouver la plage maximale dans une feuille de calcul.
Obtenir la plage maximale
Dans Aspose.Cells, si les objets row et column sont initialisés, ces lignes et colonnes seront comptées dans la zone maximale, même s’il n’y a pas de données dans les lignes ou colonnes vides.
Workbook workbook = new Workbook("Book1.xlsx"); | |
// Get all the worksheets in the book. | |
WorksheetCollection worksheets = workbook.Worksheets; | |
Worksheet sheet = worksheets[0]; | |
//Gets the max data range. | |
int maxRow = sheet.Cells.MaxRow; | |
int maxColumn = sheet.Cells.MaxColumn; | |
//The range is A1:B3. | |
Range range = sheet.Cells.CreateRange(0, 0, maxRow + 1, maxColumn + 1); | |
sheet.Cells["A10"].PutValue(null); | |
maxRow = sheet.Cells.MaxRow; | |
maxColumn = sheet.Cells.MaxColumn; | |
//The range is udpated to A1:B10. | |
range = sheet.Cells.CreateRange(0, 0, maxRow + 1, maxColumn + 1); |
Obtenir la plage de données maximale
Dans la plupart des cas, nous n’avons besoin d’obtenir que toutes les plages contenant toutes les données, même si les cellules vides en dehors de la plage sont formatées. Et les paramètres concernant les formes, tableaux et tableaux croisés dynamiques seront ignorés.
// Instantiate a new Workbook. | |
Workbook workbook = new Workbook("Book1.xlsx"); | |
// Get all the worksheets in the book. | |
WorksheetCollection worksheets = workbook.Worksheets; | |
Worksheet sheet = worksheets[0]; | |
//Gets the max data range. | |
int maxRow = sheet.Cells.MaxDataRow; | |
int maxColumn = sheet.Cells.MaxDataColumn; | |
//The range is A1:B3. | |
Range range = sheet.Cells.CreateRange(0, 0, maxRow + 1, maxColumn + 1); | |
sheet.Cells["A10"].PutValue(null); | |
maxRow = sheet.Cells.MaxDataRow; | |
maxColumn = sheet.Cells.MaxDataColumn; | |
//The range is still A1:B3. | |
range = sheet.Cells.CreateRange(0, 0, maxRow + 1, maxColumn + 1); |
Obtenir la plage d’affichage maximale
Lorsque nous exportons toutes les données de la feuille de calcul vers HTML, PDF ou images, nous devons obtenir une zone contenant tous les objets visibles, y compris les données, les styles, les graphiques, les tableaux et les tableaux croisés dynamiques. Les codes suivants montrent comment rendre la plage d’affichage maximale en html :
// Instantiate a new Workbook. | |
Workbook workbook = new Workbook("Book1.xlsx"); | |
// Get all the worksheets in the book. | |
WorksheetCollection worksheets = workbook.Worksheets; | |
//Gets the max display range. | |
Range range = worksheets[0].Cells.MaxDisplayRange; | |
//Save the range to html | |
HtmlSaveOptions saveOptions = new HtmlSaveOptions(); | |
saveOptions.ExportActiveWorksheetOnly = true; | |
saveOptions.ExportArea = CellArea.CreateCellArea(range.FirstRow, range.FirstColumn, range.FirstRow + range.RowCount - 1, range.FirstColumn + range.ColumnCount - 1); | |
//Save the range. | |
workbook.Save("html.html", saveOptions); |
Voici le fichier excel source.