# Live Stock Quotes in a C# .NET App with TX Sheet Control

> The TX Sheet Control stock market demo streams simulated quotes for 16 fictional companies into a worksheet. See how batch updates drive formula recalculation, volume bars, directional icons, and sparklines, then change the feed speed to measure update latency and throughput.

- **Author:** Bjoern Meyer
- **Published:** 2026-11-13
- **Modified:** 2026-11-13
- **Description:** The TX Sheet Control stock market demo streams simulated quotes for 16 fictional companies into a worksheet. See how batch updates drive formula recalculation, volume bars, directional icons, and sparklines, then change the feed speed to measure update latency and throughput.
- **4 min read** (642 words)
- **Tags:**
  - TX Sheet Control
  - JavaScript
  - ASP.NET Core
- **Web URL:** https://www.textcontrol.com/blog/2026/11/13/live-stock-market-updates-with-tx-sheet-control/
- **LLMs URL:** https://www.textcontrol.com/blog/2026/11/13/live-stock-market-updates-with-tx-sheet-control/llms.txt
- **LLMs-Full URL:** https://www.textcontrol.com/blog/2026/11/13/live-stock-market-updates-with-tx-sheet-control/llms-full.txt

---

When a new stock quote arrives, changing the price is only the first step. That price feeds the dollar and percentage changes, the market summary, and the trend line next to the quote. At a high update rate, the spreadsheet has to keep those results in sync while users scroll, select cells, and inspect formulas.

Our [Live Stock Market](https://demos.textcontrol.com/demos/sheet-control/live-stock-market) sample puts TX Sheet Control through that workflow. It streams simulated quotes for 16 fictional companies into an editable worksheet, with controls for the feed speed and a readout that shows how long each batch takes to apply and recalculate.

    [Download the demo video](https://s1-www.textcontrol.com/assets/dist/blog/2026/11/13/b/assets/stock_demo.mp4)  Watch the simulated stock market worksheet in action. 

### A Market Watch Built in the Worksheet

Each row shows an embedded company logo and ticker alongside the company name, last price, trading volume, open, session high and low, and previous close. Native conditional formatting adds data bars for volume and directional arrows for percentage change. A sparkline shows the last 18 prices for each company.

The simulation writes inputs such as the last price, accumulated volume, and rolling price history. Worksheet formulas calculate the change from the previous close and the corresponding percentage. They also estimate turnover by multiplying the last price by accumulated volume. The summary row uses `COUNTIF` to count advancing, declining, and unchanged stocks, and `SUM` to total estimated turnover.

  ![Paused worksheet with the Change Percent cell F5 selected and its formula visible](https://s1-www.textcontrol.com/assets/dist/blog/2026/11/13/b/assets/stock-market-formula.webp "Paused worksheet with the Change Percent cell F5 selected and its formula visible") Pause the feed and select F5 to see `=IFERROR(E5/L5,0)` in the formula bar. The cell divides the price change by the previous close. 

### Why Fast Updates and Recalculation Matter

Spreadsheet performance depends on the whole update path. The control must accept incoming values, recalculate formulas that depend on them, and redraw the indicators and charts users rely on. A lag anywhere in that sequence can leave someone looking at a fresh quote alongside an older percentage change or trend.

The sample groups each tick into one `Workbook.batch()` and writes the updated inputs with `Range.setValues()`. It then awaits `workbook.calculation.recalculateAsync()` before scheduling the next tick. The formulas stay in the workbook, so the same dependencies also update when a user pauses the feed and edits a price. Waiting for each batch to finish keeps batches from piling up when recalculation takes longer than the selected interval.

**Batch + calc** shows the time spent writing a batch and waiting for its calculations to finish. **Quotes / sec** measures completed quote updates over recent ticks, including the selected delay between batches. The interval ranges from 1,000 ms down to 50 ms. Actual throughput varies with the browser, device, and workbook workload.

### Put the Feed Under Load

Switch the feed to 50 ms and trigger a volatility burst to see larger price and volume swings for the next 12 ticks. Watch the data bars, directional icons, sparklines, and summary figures respond. You can pause at any time, change a last price to see its dependents update, or advance one tick to follow the simulation batch by batch.

  ![Expanded market watch during a simulated volatility burst with all 16 companies visible](https://s1-www.textcontrol.com/assets/dist/blog/2026/11/13/b/assets/stock-market-expanded.webp "Expanded market watch during a simulated volatility burst with all 16 companies visible") The expanded editor shows all 16 companies and the rolling price history during a volatility burst. 

[Try the Live Stock Market Demo](https://demos.textcontrol.com/demos/sheet-control/live-stock-market)

All our [online demos](https://demos.textcontrol.com/demos/sheet-control/integration) have been updated to the latest release candidate of TX Sheet Control. Stay tuned to our blog for the official release announcement coming soon!

---

## About Bjoern Meyer

As CEO, Bjoern is the visionary behind our strategic direction and business development, bridging the gap between our customers and engineering teams. His deep passion for coding and web technologies drives the creation of innovative products. If you're at a tech conference, be sure to stop by our booth - you'll most likely meet Bjoern in person. With an advanced graduate degree (Dipl. Inf.) in Computer Science, specializing in AI, from the University of Bremen, Bjoern brings significant expertise to his role. In his spare time, Bjoern enjoys running, paragliding, mountain biking, and playing the piano.

- [LinkedIn](https://www.linkedin.com/in/bjoernmeyer/)
- [X](https://x.com/txbjoern)
- [GitHub](https://github.com/bjoerntx)

---

## Related Posts

- [How to Embed a DOCX Editor in a Web Application (ASP.NET Core)](https://www.textcontrol.com/blog/2026/10/30/how-to-embed-docx-editor-aspnet-core/llms.txt)
- [DOCX Editor SDK: A Complete Evaluation Guide and Checklist](https://www.textcontrol.com/blog/2026/10/28/docx-editor-sdk-complete-evaluation-guide-and-checklist/llms.txt)
- [Build a Custom Backstage View in ASP.NET Core with TX Text Control](https://www.textcontrol.com/blog/2026/02/17/build-a-custom-backstage-view-in-aspnet-core-with-tx-text-control/llms.txt)
- [5 Document Workflows You Can Automate With JavaScript Rich Text Editor](https://www.textcontrol.com/blog/2026/01/14/five-document-workflows-you-can-automate-with-javascript-rich-text-editor/llms.txt)
- [Format Painter in ASP.NET Core: Building Custom Text Formatting with TX Text Control](https://www.textcontrol.com/blog/2025/09/09/format-painter-in-asp-dotnet-core-building-custom-text-formatting-with-tx-text-control/llms.txt)
- [Add JavaScript to PDFs with TX Text Control in C# .NET: Time-Based Alerts Made Easy](https://www.textcontrol.com/blog/2025/06/13/add-javascript-to-pdfs-with-tx-text-control-in-c-dot-net-time-based-alerts-made-easy/llms.txt)
- [Observe When the Reporting Preview Tab is Active Using MutationObserver](https://www.textcontrol.com/blog/2024/07/23/observe-when-the-reporting-preview-tab-is-active-using-mutationobserver/llms.txt)
- [Loading Documents from Azure Blob Storage into the TX Text Control Document Editor using pure JavaScript](https://www.textcontrol.com/blog/2024/04/08/loading-documents-from-azure-blob-storage-into-tx-text-control-document-editor-using-pure-javascript/llms.txt)
- [Building an ASP.NET Core Backend Application to Host the Document Editor and Document Viewer](https://www.textcontrol.com/blog/2024/03/14/building-an-asp-net-core-backend-application-to-host-the-document-editor-and-document-viewer/llms.txt)
- [Getting Started: Document Viewer with JavaScript](https://www.textcontrol.com/blog/2023/09/15/getting-started-document-viewer-with-javascript/llms.txt)
- [Getting Started: Document Editor with JavaScript](https://www.textcontrol.com/blog/2023/09/15/getting-started-document-editor-with-javascript/llms.txt)
- [Updating SubTextParts using JavaScript Promises](https://www.textcontrol.com/blog/2022/12/23/updating-subtextparts-using-javascript-promises/llms.txt)
- [MailMerge: Working with Image Placeholders](https://www.textcontrol.com/blog/2022/12/22/mailmerge-working-with-image-placeholders/llms.txt)
- [JavaScript: Avoid Flickering and Visual Updates by Grouping Undo Steps](https://www.textcontrol.com/blog/2022/07/25/javascript-avoid-flickering-and-visual-updates-by-grouping-undo-steps/llms.txt)
- [DS Server Released: On-Premise Document Services](https://www.textcontrol.com/blog/2021/01/21/ds-server-released-on-premise-document-services/llms.txt)
- [Merging Templates using DS Server in ASP.NET Core](https://www.textcontrol.com/blog/2021/01/07/merging-templates-using-ds-server-in-aspnet-core/llms.txt)
- [Synchronizing Editable Regions with SignalR Broadcasting](https://www.textcontrol.com/blog/2020/05/12/synchronizing-editable-regions-with-signalr/llms.txt)
