BizzelTech.QuickBooks 1.0.1

There is a newer version of this package available.
See the version list below for details.
dotnet add package BizzelTech.QuickBooks --version 1.0.1
                    
NuGet\Install-Package BizzelTech.QuickBooks -Version 1.0.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="BizzelTech.QuickBooks" Version="1.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="BizzelTech.QuickBooks" Version="1.0.1" />
                    
Directory.Packages.props
<PackageReference Include="BizzelTech.QuickBooks" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add BizzelTech.QuickBooks --version 1.0.1
                    
#r "nuget: BizzelTech.QuickBooks, 1.0.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package BizzelTech.QuickBooks@1.0.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=BizzelTech.QuickBooks&version=1.0.1
                    
Install as a Cake Addin
#tool nuget:?package=BizzelTech.QuickBooks&version=1.0.1
                    
Install as a Cake Tool

BizzelTools - Business Data Processing Libraries

A comprehensive suite of .NET libraries for business data processing, Excel generation, and QuickBooks integration. The BizzelTools ecosystem provides powerful, easy-to-use tools for working with business data formats.

๐Ÿ“ฆ Packages

๐Ÿ”ท BizzelTech.Excel

NuGet

A powerful, customizable Excel library with a fluent API for creating and reading Excel documents. Alternative to EPPlus and ClosedXML with full control over implementation.

Key Features:

  • Fluent API for Excel file creation
  • Rich formatting and styling support
  • Formula support with automatic calculation
  • Multi-framework support (.NET 8, 9, 10)
  • Type-safe operations with IntelliSense
dotnet add package BizzelTech.Excel

๐Ÿ“Š BizzelTech.QuickBooks

NuGet

Comprehensive QuickBooks data processing library with models, file reading framework, and export capabilities. Integrates seamlessly with BizzelTech.Excel for beautiful data exports.

Key Features:

  • Complete QuickBooks data models (Customers, Vendors, Items, etc.)
  • Excel export using BizzelTech.Excel integration
  • CSV export for data integration
  • Framework for QuickBooks file reading
  • Multi-framework support (.NET 8, 9, 10)
dotnet add package BizzelTech.QuickBooks

๐Ÿš€ Quick Start Examples

Excel Creation with BizzelTech.Excel

using BizzelTools.Excel;

var workbook = Excel.Create()
    .WithProperties(title: "Sales Report", author: "BizzelTools")
    .ConfigureWorksheet("Data", ws => ws
        .SetValue("A1", "Product")
        .SetValue("B1", "Revenue")
        .ApplyStyle("A1:B1", style => style.Bold().BackgroundColor(Color.LightGray))
        .SetValue("A2", "Software")
        .SetValue("B2", 50000)
        .ApplyStyle("B2", style => style.NumberFormat("$#,##0.00")))
    .SaveAs("report.xlsx");

QuickBooks Data Export

using BizzelTech.QuickBooks.Models;
using BizzelTech.QuickBooks.Services;

var exporter = new DataExporter(logger);
var quickBooksData = new QuickBooksData
{
    CompanyName = "My Company",
    Customers = new List<Customer>
    {
        new Customer { Name = "Acme Corp", Balance = 15000.00m }
    }
};

// Export to Excel using BizzelTech.Excel integration
await exporter.ExportToExcelAsync(quickBooksData, "quickbooks_data.xlsx");

// Export to CSV files
await exporter.ExportToCsvAsync(quickBooksData, "csv_export/");

๐Ÿ“ Project Structure

BizzelTools/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ BizzelTools.Excel/           # Excel library source
โ”‚   โ””โ”€โ”€ BizzelTech.QuickBooks/       # QuickBooks library source
โ”œโ”€โ”€ tests/
โ”‚   โ””โ”€โ”€ BizzelTools.Excel.Tests/     # Unit tests
โ”œโ”€โ”€ samples/
โ”‚   โ”œโ”€โ”€ BizzelTools.Excel.Sample/    # Excel sample application
โ”‚   โ””โ”€โ”€ BizzelTools.QuickBooks.Sample/ # QuickBooks sample application
โ”œโ”€โ”€ nupkg/                           # NuGet packages output
โ””โ”€โ”€ README.md                        # This file

๐Ÿ”ฌ Sample Applications

Excel Sample

Located in samples/BizzelTools.Excel.Sample/

Demonstrates:

  • Fluent API usage
  • Advanced styling and formatting
  • Formula calculations
  • Data import from collections
  • Multi-worksheet creation
cd samples/BizzelTools.Excel.Sample
dotnet run

QuickBooks Sample

Located in samples/BizzelTools.QuickBooks.Sample/

Demonstrates:

  • QuickBooks data models
  • Excel export with professional formatting
  • CSV export capabilities
  • Dependency injection patterns
  • Logging integration
cd samples/BizzelTools.QuickBooks.Sample
dotnet run

๐Ÿ—๏ธ Architecture Overview

BizzelTech.Excel Architecture

  • Fluent API: Chainable builder pattern for intuitive Excel creation
  • Model-based: Strong typing with IntelliSense support
  • OpenXML Foundation: Built on DocumentFormat.OpenXml for reliability
  • Extensible: Clean interfaces for extending functionality

BizzelTech.QuickBooks Architecture

  • Domain Models: Rich models representing QuickBooks entities
  • Service Pattern: Clean separation with dependency injection support
  • Excel Integration: Seamless integration with BizzelTech.Excel
  • Export Framework: Extensible export system for multiple formats

๐Ÿ”„ Package Integration

The packages work seamlessly together:

// QuickBooks data automatically exports to Excel using BizzelTech.Excel
var exporter = new DataExporter(logger);
await exporter.ExportToExcelAsync(quickBooksData, "output.xlsx");

// Results in professional Excel files with:
// - Multiple worksheets for each data type
// - Formatted headers with styling
// - Currency formatting for monetary fields
// - Summary worksheets with company overview

๐Ÿš€ Detailed Feature Overview

BizzelTech.Excel Features

  • Fluent API: Easy-to-use, chainable methods for building Excel files
  • Full Excel Support: Create, read, and modify Excel (.xlsx) files
  • Rich Formatting: Support for fonts, colors, borders, alignment, and number formats
  • Formula Support: Add Excel formulas to cells with automatic calculation
  • Data Import: Easily import data from collections and arrays
  • Worksheet Management: Create, rename, copy, and manage multiple worksheets
  • Cell Ranges: Work with individual cells or ranges of cells
  • Type Safety: Strongly typed API with full IntelliSense support
  • Multi-Framework: .NET 8.0, 9.0, and 10.0 support

BizzelTech.QuickBooks Features

  • Complete Data Models: All QuickBooks entities (Customers, Vendors, Items, Accounts, Transactions, Employees)
  • Excel Export: Professional Excel files using BizzelTech.Excel integration
  • CSV Export: Standard CSV files for data integration
  • File Reading Framework: Extensible framework for QuickBooks file parsing
  • Logging Integration: Built-in logging support
  • Dependency Injection: Clean service patterns with DI support
  • Multi-Framework: .NET 8.0, 9.0, and 10.0 support

๐Ÿ“– Comprehensive Examples

Excel Creation Examples

1. Simple Excel File
using BizzelTools.Excel;

var workbook = Excel.Create()
    .WithProperties(title: "My Report", author: "Your Name")
    .ConfigureWorksheet("Data", ws => ws
        .SetValue("A1", "Hello")
        .SetValue("B1", "World")
        .SetValue("A2", 42)
        .SetValue("B2", DateTime.Now))
    .SaveAs("example.xlsx");
2. Styled Business Report
var workbook = Excel.Create()
    .ConfigureWorksheet("Sales Report", ws => ws
        // Headers
        .CreateHeader(1, 1, new[] { "Product", "Price", "Quantity", "Total" },
            style => style.Bold().BackgroundColor(Color.DarkBlue).FontColor(Color.White))
        
        // Data
        .SetValue(2, 1, "Widget A")
        .SetValue(2, 2, 10.50)
        .SetValue(2, 3, 5)
        .SetFormula(2, 4, "B2*C2")
        
        // Formatting
        .ApplyStyle(2, 2, 10, 2, style => style.NumberFormat("$#,##0.00"))
        .ApplyStyle(2, 4, 10, 4, style => style.NumberFormat("$#,##0.00")))
    .SaveAs("sales_report.xlsx");
3. Data Import from Collections
var employees = new[]
{
    new { Name = "John Doe", Department = "IT", Salary = 75000 },
    new { Name = "Jane Smith", Department = "HR", Salary = 65000 }
};

var workbook = Excel.Create()
    .ConfigureWorksheet("Employees", ws => ws
        .InsertData(1, 1, employees, includeHeaders: true)
        .ApplyStyle(1, 1, 1, 3, style => style.Bold().BackgroundColor(Color.LightGray))
        .ApplyStyle(2, 3, employees.Length + 1, 3, style => style.NumberFormat("$#,##0")))
    .SaveAs("employees.xlsx");

QuickBooks Integration Examples

1. Creating QuickBooks Data
using BizzelTech.QuickBooks.Models;

var quickBooksData = new QuickBooksData
{
    CompanyName = "Sample Company Inc",
    DateRange_Start = DateTime.Now.AddYears(-1),
    DateRange_End = DateTime.Now,
    Customers = new List<Customer>
    {
        new Customer
        {
            Name = "Acme Corporation",
            ContactPerson = "John Smith",
            Email = "john@acme.com",
            Balance = 15750.50m,
            IsActive = true
        }
    },
    Transactions = new List<Transaction>
    {
        new Transaction
        {
            Date = DateTime.Now.AddDays(-30),
            Type = "Invoice",
            Customer = "Acme Corporation",
            Amount = 15000.00m,
            Description = "Consulting services"
        }
    }
};
2. Excel Export with Professional Formatting
using BizzelTech.QuickBooks.Services;

var exporter = new DataExporter(logger);

// Creates beautiful Excel file with:
// - Separate worksheets for each data type
// - Formatted headers with bold text and background colors
// - Currency formatting for monetary fields
// - Date formatting for transactions
// - Summary worksheet with company overview
await exporter.ExportToExcelAsync(quickBooksData, "company_data.xlsx");
3. CSV Export for Integration
// Exports to separate CSV files:
// - Company_Customers.csv
// - Company_Vendors.csv  
// - Company_Transactions.csv
// - etc.
await exporter.ExportToCsvAsync(quickBooksData, "csv_export_directory");
4. Service Integration with Dependency Injection
// Startup.cs or Program.cs
services.AddTransient<IQuickBooksReader, QuickBooksFileReader>();
services.AddTransient<IDataExporter, DataExporter>();

// Usage
public class BusinessService
{
    private readonly IDataExporter _exporter;
    
    public BusinessService(IDataExporter exporter)
    {
        _exporter = exporter;
    }
    
    public async Task ExportCompanyDataAsync(QuickBooksData data)
    {
        await _exporter.ExportToExcelAsync(data, "report.xlsx");
    }
}

๐Ÿงช Testing

Both libraries include comprehensive unit tests:

# Run all tests
dotnet test

# Run specific project tests
dotnet test tests/BizzelTools.Excel.Tests/

๐Ÿ”ง Building from Source

  1. Clone the repository

    git clone https://github.com/yourusername/BizzelTools.git
    cd BizzelTools
    
  2. Restore dependencies

    dotnet restore
    
  3. Build the solution

    dotnet build
    
  4. Run tests

    dotnet test
    
  5. Create NuGet packages

    dotnet pack --configuration Release
    

๏ฟฝ Requirements

  • .NET 8.0 or later (supports .NET 8, 9, and 10)
  • DocumentFormat.OpenXml 3.1.0 (for Excel operations)
  • CsvHelper 33.1.0 (for CSV operations in QuickBooks package)

๐Ÿค Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Add tests for new functionality
  5. Ensure all tests pass (dotnet test)
  6. Commit your changes (git commit -m 'Add amazing feature')
  7. Push to the branch (git push origin feature/amazing-feature)
  8. Open a Pull Request

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

  • BizzelTech.Excel is built on top of DocumentFormat.OpenXml
  • BizzelTech.QuickBooks uses CsvHelper for CSV operations
  • Inspired by popular libraries like EPPlus and ClosedXML, but designed for full developer control
  • Thanks to the .NET community for continuous inspiration and feedback

Documentation

Support

For questions, issues, or feature requests:


BizzelTools - Making business data processing simple, powerful, and integrated.

๐Ÿ”ท Excel โ€ข ๐Ÿ“Š QuickBooks โ€ข ๐Ÿš€ Productivity

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.2 139 9/8/2025
1.0.1 142 9/7/2025
1.0.0 138 9/7/2025