Setting the number format for cells in Excel worksheets is crucial for data management and presentation, which enhances readability, ensures consistency, and facilitates accurate data analysis. Proper number formatting allows users to distinguish between different types of numerical data, such as currency, percentages, dates, and scientific notations, making complex datasets more comprehensible at a glance. In this article, we will explore how to automate the process of setting the number format for cells in Excel worksheets with Spire.XLS for Python in Python programs.
Install Spire.XLS for Python
This scenario requires Spire.XLS for Python and plum-dispatch v1.7.4. They can be easily installed in your Windows through the following pip command.
pip install Spire.XLS
If you are unsure how to install, please refer to: How to Install Spire.XLS for Python on Windows
Set the Number Format for Cells in Excel Worksheets
In an Excel workbook, the number format of a cell is determined by its format code. Developers can utilize various symbols in format code to define how numerical data, date and time, currency, etc. are displayed. Below are some commonly used symbols in number format codes:
- #: Represents a digit placeholder that displays only non-zero digits.
- 0: Represents a digit placeholder and always occupies at least one position.
- ; (semicolon): Separates formats for positive numbers, negative numbers, and zero.
- / (slash): In date formats, separates year, month, and day.
- $: Currency symbol, used for representing monetary values, adaptable to system regional settings.
- () (parentheses): Formats negative numbers by enclosing them in parentheses.
- [ ] (square brackets): Utilized in conditional formatting, such as color settings [Red] or conditions like [<=100]"Low";[>100]"High".
Spire.XLS for Python provides the CellRange.NumberValue property to set the number value of a cell and the CellRange.NumberFormat property to set the number format with format code. Below are the steps for setting the number format for cells in Excel worksheets with Python:
- Create an instance of Workbook class to create an Excel workbook.
- Get the first default worksheet using Workbook.Worksheets.get_Item() method.
- Add text to header row through Worksheet.Range[].Text property.
- Add number value to cells through Worksheet.Range[].NumberValue property and set the number format for the cells with format code through Worksheet.Range[].NumberFormat property.
- Save the Excel workbook using Workbook.SaveToFile() method.
- Python
from spire.xls import * from spire.xls.common import * # Create an instance of Workbook workbook = Workbook() # Get the first worksheet sheet = workbook.Worksheets.get_Item(0) # Set the header row sheet.Range["B9"].Text = "Number Format" sheet.Range["C9"].Text = "Value" sheet.Range["D9"].Text = "Display" # Number with thousands separator and decimal places sheet.Range["B10"].Text = "Number with thousands separator and decimal places" sheet.Range["C10"].Text = "-1234.5678" sheet.Range["D10"].NumberValue = -1234.5678 sheet.Range["D10"].NumberFormat = "#,##0.00" # Number in red color sheet.Range["B11"].Text = "Number in red color" sheet.Range["C11"].Text = "12345.12345" sheet.Range["D11"].NumberValue = 12345.12345 sheet.Range["D11"].NumberFormat = "[Red]#,##0.00" # Percentage with two decimal places sheet.Range["B12"].Text = "Percentage with two decimal places" sheet.Range["C12"].Text = "0.12345" sheet.Range["D12"].NumberValue = 0.12345 sheet.Range["D12"].NumberFormat = "0.00%" # Number with brackets sheet.Range["B13"].Text = "Number with brackets" sheet.Range["C13"].Text = "-1234.5678" sheet.Range["D13"].NumberValue = -1234.5678 sheet.Range["D13"].NumberFormat = "(#,##0.00;(#,##0.00))" # Date sheet.Range["B14"].Text = "Date" sheet.Range["C14"].Text = "36526" sheet.Range["D14"].NumberValue = 36526 sheet.Range["D14"].NumberFormat = "m/d/yyyy" # Time sheet.Range["B15"].Text = "Time" sheet.Range["C15"].Text = "0.5" sheet.Range["D15"].NumberValue = 0.5 sheet.Range["D15"].NumberFormat = "h:mm:ss AM/PM" # Currency in US format sheet.Range["B16"].Text = "Currency in US format" sheet.Range["C16"].Text = "1234.56" sheet.Range["D16"].NumberValue = 1234.56 sheet.Range["D16"].NumberFormat = "$#,##0.00" # Scientific notation sheet.Range["B18"].Text = "Scientific notation" sheet.Range["C18"].Text = "1234.5678" sheet.Range["D18"].NumberValue = 1234.5678 sheet.Range["D18"].NumberFormat = "0.00E+00" # Date and time sheet.Range["B19"].Text = "Date and time" sheet.Range["C19"].Text = "36526" sheet.Range["D19"].NumberValue = 36526 sheet.Range["D19"].NumberFormat = "m/d/yyyy h:mm:ss AM/PM" # Number with text sheet.Range["B20"].Text = "Number with text" sheet.Range["C20"].Text = "1234.56" sheet.Range["D20"].NumberValue = 1234.5678 sheet.Range["D20"].NumberFormat = "\"USD \"#,##0.00" # Set the font size and autofit rows and columns sheet.AllocatedRange.Style.Font.Size = 13 sheet.AllocatedRange.AutoFitRows() sheet.AllocatedRange.AutoFitColumns() # Save the file workbook.SaveToFile("output/SetNumberFormatExcel.xlsx", FileFormat.Version2016) workbook.Dispose()
Apply for a Temporary License
If you'd like to remove the evaluation message from the generated documents, or to get rid of the function limitations, please request a 30-day trial license for yourself.