Ankeshan

Thermal / POS Bill Printing from Excel

Last updated: 27 June 2026

Excel can print directly to any thermal POS printer that appears as a Windows printer—no dedicated billing software required. By setting a custom paper size (58mm or 80mm wide) in Page Layout, adding SUMIF rate-summary rows, and wiring a one-click VBA macro, an Indian retail shop can produce a fully GST-compliant receipt in seconds.


Key takeaways

  • Thermal printers accept any Windows print job; Excel sends output to them like a normal printer driver.
  • Set a custom paper width of 58mm or 80mm in Page Layout → Page Setup → Paper → Custom; leave height very tall so the bill prints as one continuous strip.
  • Use a monospaced font (Courier New, 8–9 pt) for reliable column alignment on narrow paper.
  • A SUMIF block grouped by GST rate is mandatory for multi-rate retail (pharmacy, clothing, restaurant).
  • B2C retail bills are not subject to e-invoicing regardless of your turnover, but if turnover exceeds ₹5 crore a dynamic QR code must appear on B2C bills.
  • Consolidated daily totals from thermal bills feed GSTR-1 Table 7 (B2C small, value < ₹2.5 lakh).
  • The free Excel POS bill template in this article auto-increments the bill number and builds the rate-summary block — no sign-up needed.

Why print GST thermal bills from Excel?

Most small retailers—pharmacies, restaurants, clothing shops, grocery stores—already use Excel for stock and pricing. Buying dedicated POS software adds recurring cost and a learning curve. Excel handles the job adequately when configured correctly: the thermal printer appears in Windows as a standard printer (its ESC/POS protocol is handled by the manufacturer's driver), and Excel simply sends the page to it.

The main technical challenge is paper width. Standard A4 is 210mm wide. A thermal receipt roll is either 58mm or 80mm. The printable area after margins is roughly 50mm on 58mm paper and 72mm on 80mm paper—less than a third of an A4 sheet. That constraint drives every design decision: abbreviated column headers, narrow fonts, and a compact rate-summary block instead of a full invoice layout.


Fact box. Under GST Rule 46 read with its B2C proviso, for sales to unregistered buyers where the bill value is below ₹2.5 lakh, you may omit the buyer's name and address. Almost all retail counter bills fall well under this threshold, so the receipt only needs your own shop details, GSTIN, and a sequential bill number.


How do I set up Excel for 58mm or 80mm thermal paper?

Follow these steps once to configure the worksheet for thermal output:

  1. Open the POS bill worksheet.
  2. Go to Page Layout → Page Setup (click the small dialog launcher arrow).
  3. In the Page tab, set Orientation to Portrait and Scaling to 100%.
  4. Click the Paper size dropdown → scroll down to Custom Paper Size (or "Manage Custom Sizes" depending on your version).
  5. Set Width to 58mm or 80mm (match your roll). Set Height to a large value such as 500mm or 1,000mm—this prevents Excel from breaking the bill across multiple pages.
  6. Set all margins to 2mm–3mm in the Margins tab.
  7. In the Sheet tab, set Print Area to cover only the bill rows (e.g. $A$1:$D$60).
  8. Click OK and save the file as a template.

You only need to do this once per template. The custom paper size is stored in the workbook.

Column layout for 80mm paper (72mm printable):

Column Content Suggested width
A Item description (abbreviated) 34mm
B Qty 8mm
C Rate (₹) 15mm
D Amount (₹) 15mm

For 58mm paper, reduce column A to 20mm and drop rate/qty to single digits.


What must a GST retail receipt show?

A receipt for a registered dealer selling to an unregistered (B2C) customer must include:

Field Required? Notes
Shop name and address Yes As on GST certificate
GSTIN Yes If registered
Date and time Yes Use =TEXT(NOW(),"DD-MMM-YYYY HH:MM")
Bill number Yes Sequential; separate POS series recommended, e.g. POS/2026-27/001
Item description, qty, rate, amount Yes
GST rate per line or in summary block Yes Show taxable value + GST amount
Grand total Yes
Buyer name/address No May be omitted if bill value < ₹2.5 lakh
Dynamic QR code If turnover > ₹5 cr Self-generated; not the e-invoicing IRP QR

How do I handle multiple GST rates on one bill (pharmacy, restaurant)?

Retail often mixes items at different rates—a pharmacy may have Nil-rated items (some medicines, bandages), 5%-rated items (other medicines), and 18%-rated items (cosmetics, sundries). A restaurant bill is typically 5% on food services with no ITC.

The approach is a rate-summary block below the item list, built with SUMIF:

Taxable @ Nil    ₹ XXX.00    GST ₹ 0.00
Taxable @ 5%     ₹ XXX.00    GST ₹ XX.00
Taxable @ 18%    ₹ XXX.00    GST ₹ XX.00
─────────────────────────────────────────
Total GST                    ₹ XX.00
Grand Total                  ₹ XXX.00

In Excel, place the GST rate for each item in a helper column (hidden or visible). Then in the summary block:

  • Taxable value at 5%: =SUMIF(RateCol, 5%, TaxableCol)
  • GST at 5%: =SUMIF(RateCol, 5%, TaxableCol) * 5%

Repeat for each rate. This block is also exactly what you need when entering daily totals into GSTR-1 Table 7.

Fact box. As of 22 September 2025, the 12% and 28% GST slabs were abolished. The active slabs for most retail goods and services are now Nil, 5%, 18%, and 40%. Update any old templates or dropdown lists that still reference 12% or 28%.


Does e-invoicing apply to my retail thermal bills?

No. E-invoicing (IRP upload and IRN generation) applies only to B2B supplies (sales to GST-registered buyers). Retail counter sales to unregistered consumers are B2C and are entirely outside the e-invoicing mandate, regardless of your annual turnover.

However, if your aggregate turnover in the previous financial year exceeded ₹5 crore, you are required to display a dynamic QR code on B2C invoices. This is a self-generated QR code (not the IRN QR from IRP) encoding key payment and merchant details. Excel can generate this via a VBA library or you can insert a pre-generated merchant UPI QR image in the bill header—check with your CA for the exact content requirements.


How do I wire a one-click Print Bill button?

Add a VBA macro to automate the print-and-increment workflow:

  1. Press Alt + F11 to open the VBA editor.
  2. Insert a new module and paste:
Sub PrintPOSBill()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Bill")

    ' Increment bill number
    Dim current As String
    current = ws.Range("BillNumber").Value  ' named range
    ' Parse and increment the suffix (e.g. POS/2026-27/001 → 002)
    Dim parts() As String
    parts = Split(current, "/")
    Dim newNum As Long
    newNum = CLng(parts(2)) + 1
    ws.Range("BillNumber").Value = parts(0) & "/" & parts(1) & "/" & Format(newNum, "000")

    ' Print to default printer (thermal)
    ws.PrintOut Copies:=1, Collate:=True

    ' Optional: save PDF copy
    ws.ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:="Bills\" & ws.Range("BillNumber").Value & ".pdf"
End Sub
  1. Close the VBA editor. Back on the sheet, go to Insert → Shapes, draw a rectangle, right-click → Assign Macro → select PrintPOSBill.
  2. Label the button "Print Bill".

Each click prints the current bill and increments the counter. Keep a backup of the workbook regularly so the counter is not lost.


How do retail thermal bills feed into GSTR-1?

You do not upload individual thermal bills into GSTR-1. Instead:

  • Table 7 (B2C small): Bills with value below ₹2.5 lakh are reported as a consolidated monthly total, broken down by GST rate. Sum up all bills for the month by rate slab and enter the totals. This is exactly what your rate-summary block produces each day—keep a running daily tally in a separate sheet.
  • Table 5 (B2C large): Inter-state bills with value ₹2.5 lakh or above must be reported individually with state-wise breakup. Counter retail at these values is uncommon but does occur in jewellery or high-value electronics.

Maintaining a daily summary log (date | Nil taxable | 5% taxable | 18% taxable | total GST | bill count) makes month-end GSTR-1 filing straightforward.


How Ankeshan helps

How Ankeshan helps: Ankeshan automates POS bill numbering, rate-wise SUMIF summaries, and daily GSTR-1 Table 7 rollups inside Excel. It's launching soon; join the waitlist.

The free Excel POS bill template (80mm thermal, no sign-up) is available at the GST Invoicing hub.


Frequently asked questions

Do I need special software to print from Excel to a thermal printer? No. Install the thermal printer's Windows driver (usually available on the manufacturer's website or via Windows Update), and it appears in your printer list. Excel prints to it exactly like any other printer. The ESC/POS protocol conversion is handled by the driver, not by Excel.

My thermal bill text is misaligned—columns drift. What fixes this? Use Courier New or another monospaced font at 8–9pt. Proportional fonts (Calibri, Arial) cause character-width variation that breaks column alignment on thermal paper. Also confirm your custom paper width in Page Setup exactly matches the roll width—a 1mm mismatch shifts everything.

Can I use the same bill number series for thermal POS bills and my regular GST invoices? You can, but a separate series is strongly recommended. Use a prefix like POS/ for counter bills and INV/ for regular invoices. This makes it easy to distinguish B2C counter sales from B2B invoices in your records and simplifies GSTR-1 Table 7 vs Table 4/6 classification.

Is a thermal receipt valid if it fades over time? Thermal paper receipts fade with heat and light exposure. For your own records (GST records must be maintained for six years), keep the PDF copy generated by the macro, not the printed receipt. The printed copy is for the customer; the PDF is your audit trail.

Restaurant bills: what GST rate applies? Restaurant services (whether dine-in, takeaway, or delivery by the restaurant itself) attract 5% GST with no input tax credit. This applies to both AC and non-AC restaurants following the 2018 amendment that removed the AC/non-AC distinction. Set all food-service line items to 5% in the template. If your restaurant also sells packaged goods (e.g. bottled water at Nil, packaged chips at 18%), use the SUMIF rate-summary block to separate them.

What if I sell items that were previously at 12% or 28%? Check the current HSN-wise rate notification. Since 22 September 2025, the 12% and 28% slabs no longer exist. Most items formerly at 12% have moved to 5% or 18%; most formerly at 28% have moved to 18% or 40%. Update your item master in the template accordingly and confirm with your CA for HSN-specific changes.


Sources

  • CGST Rules, Rule 46 — Tax invoice requirements and B2C proviso
  • CGST Act, Section 31 — Invoice issuance obligations
  • Notification No. 17/2022-Central Tax (e-invoicing thresholds) and related circulars
  • GST Council press release, 22 September 2025 — Rate rationalisation (12% and 28% slab abolition)
  • CBIC Circular on B2C dynamic QR code requirement for turnover > ₹5 crore
  • GSTR-1 instructions — Table 5 (B2C large) and Table 7 (B2C small) reporting

Disclaimer: General information, not professional advice. Verify on the official portal for your case. Reviewed by a Chartered Accountant; last updated 27 June 2026.


Related articles