Category Archives: Featured

[Review] Pinal Dave from

Founder of and developer for Pluralsight, Pinal Dave, reviewed OfficeWriter’s SSRS integration. Below is an excerpt from his blog post. To read the full review click here.

The OfficeWriter API is a .NET library by SoftArtisans that makes it easy for developers to add Excel and Word reporting and document processing to their own applications. OfficeWriter allows users to take data from any data source and turn reports into dynamic, visual presentations. Without requiring Microsoft Office on the server, OfficeWriter is optimized for high-performance, scalable server use. The .NET API integrates with business applications, including those in SSRS and SharePoint.

Why use OfficeWriter’s API with SQL Server Reporting Services (SSRS)? The default rendering extensions for Reporting Services deliver flat, static output. In order to render for multiple extensions such as HTML and PDF, the basic report design in SSRS cannot accommodate specific features, such as multiple worksheets in Excel. This also means that certain features like charts cannot be dynamic in the output because not all of the rendering extensions in SSRS support Excel charts. Therefore, charts are exported as images. Additionally, until SSRS 2008 R2, there wasn’t a default rendering extension for Word. Before SSRS 2012 there was no means of exporting to XLSX or DOCX. Using OfficeWriter for Reporting Services corrects these limitations, allowing end-users to design reports in Excel and Word and make use of many specific features in those applications.

How Creating a Report in SSRS with OfficeWriter Works:

OfficeWriter fits into SSRS with two parts. First, the OfficeWriter Renderer is a server-side rendering extension for Excel and Word, providing Excel and Word features beyond the built-in SSRS export options. Second, the OfficeWriter Designer is a client-side add-in for Excel and Word, which allows users to design reports that utilize the OfficeWriter rendering extensions.

To read the full review click here.

What’s New in OfficeWriter 9

OfficeWriter version 9 is now available! Here is a breakdown of what you can find in the latest version of OfficeWriter.

Calculation Engine

OfficeWriter version 9 kicks off with the initial release of the calculation engine for ExcelWriter. Now you can evaluate the formulas in your XLSX and XLSM files before delivering spreadsheets. Applications that can’t evaluate formulas, such as mobile apps, Outlook preview, or Excel in protected view, will show the updated values when workbooks are opened. You can also use the calculation engine to update formulas before reading them with ExcelApplication.

Currently, the calculation engine supports evaluating all of the formulas in a given workbook through the method Workbook.CalculateFormulas. This will update all the cell values based on the formulas. Check out our list of the formulas that the calculation engine supports.  If there’s a formula you need that we don’t have yet, contact our support team to submit a request!



The PowerPointWriter beta program has been going strong, and we’re excited for the official release. PowerPointWriter introduces a template-based approach to generating PowerPoint presentations (PPTX) dynamically.  Taking the best principles from ExcelWriter and WordWriter, PowerPointWriter is flexible and easy to learn.

Learn more about what PowerPointWriter can do for you with our Features overview,  use cases, and API Introduction and Tutorials.

New Excel Features

Pivot tables from multiple data sources

In OfficeWriter version 8.2, the PivotTable API for ExcelApplication was added to ExcelWriter. In OfficeWriter version 9 you can build multiple consolidation range pivot tables.  These pivot tables are created from multiple consolidation ranges and automatically generate pivot fields using the data. We have a short video to help explain how these special pivot tables work: [5 minutes with Chris – PivotTables]



ExcelWriter now offers the same protection options as Excel that change how a worksheet is locked down when it’s protected. Set SheetProtection properties to customize what users can interact with after Worksheet.Protect is called.  Check out our knowledge base article for more on how to use this new feature!

Binding custom objects to Excel

In OfficeWriter version 9 ExcelTemplate supports the ability to bind lists of custom objects to templates.  For example, you have some custom Order objects that contain information about OrderID, DeliveryDate, PurchaseAmount, and CustomerID. These Order objects are in a list called ListOfOrders.

In your template, you can reference the object properties in the data marker: %%=ListOfOrders.OrderID. ExcelWriter will treat each object in the list as though it were a row of data in a table.

For more information about how ExcelWriter imports data, please visit our documentation: ExcelWriter Basic Tutorials.

And more!

For more information about additional information about all of the changes in OfficeWriter, see our Change Log.

Announcing PowerPointWriter Beta

Join the beta

PowerPointWriter, the template-based way to merge your data with PowerPoint presentations, has arrived. Take your company data and merge it with PowerPoint to create custom presentations. We’re looking for beta testers to try out this new technology.

What is PowerPointWriter?

  • PowerPointWriter is a template-based approach to your presentations.
  • It allows you to build presentations programmatically with 5 lines of code.
  • No more add-ins. PowerPointWriter is a server-side solution to your custom presentations.

Learn more by joining the beta. You’ll receive a special reward just for signing up. Still curious? Take a quick look at our overview video!


10 Tips for Handling Inherited Code

[Kate, one of our developers at SoftArtisans, was pulled onto a project to do consulting work. Below, Kate discusses her work and how she learned to handle inherited code. Read about the lessons she’s learned after being gifted a whole new project of code.]Credit: HubSpot

Recently, I inherited the code for a pretty large project, and anyone who knew the application wasn’t around when I took it over. Learning a brand new application is a daunting task – doubled if you have to learn it without any outside resources. As I tried to familiarize myself with the application, I picked up a few tricks to handling inherited code. These are a few of the things I learned along the way that will hopefully save you hours on your next undertaking.

1. Resist temptation

It can be really hard to ignore glaring implementation flaws when you look at code for the first time. Unfortunately, there are often reasons that the junky code exists in the first place. It might not be the best solution, but if it works, just leave it. Until you fully understand what each piece of code does, you might break something unintentionally by trying to fix it. Now you’ve lost time and still don’t understand the code any better. Unless it’s necessary for your current scope of work, make a tech debt note about why it’s bad code, and back away slowly.

2. Check the docs

I learn by immediately messing around in the code and doing as much damage as possible before rolling back. This isn’t really great, but hands-on learning is so natural for most technical things that we forget about reading. You. Yes, you. You are a developer so reading seems really unnecessary. Unfortunately, we still haven’t found a way to automate it, so you’ll have to do the reading yourself. Look at any documentation that might be around. It’ll suck. It won’t make a bit of sense. Then in 6 months, you’ll look at a weird method and remember that the docs said why it was like that. And you’ll think to yourself, “Ah, well, Old Fellow, looks like that reading did more than a mite bit of good!” and you’ll laugh and light up a cigar with your adoring fans swooning and giggling. Unless, you know, you’re a normal person and not a caricature of an old famous British man. Which brings me to 3…

3. Be a caricature of an old famous British man. No. Kidding. Don’t do this. (But if you do this, let’s be friends.)

3. Check the change log

It’s useful to see what might have been done recently, what kinds of issues have been encountered, and where those fixes lie. If there’s bug tracking, change logs, general progress docs, find them all. You don’t have to memorize every issue, but go over some known problems and keep yourself from making the same mistakes.

4. Be a user

It’s a lot easier to understand the code if you take some time to use the actual application. Use it like a user would, ask users (or consult the people who already did), find out why this is the way it is. There might be a good reason that all the buttons are yellow and labeled “Do not click.” It might help the users’ workflow. Make sure you know, because ultimately if the people who need this hate what you’ve done, someone else will be inheriting this code from you.

5. Just ask

When you inherit code blind, it’s awful. I mean, of course, the last ten people to look at this have all left the company/country/planet, and you’re all alone and in the dark. However, it doesn’t hurt to ask around and find out if anyone else knows what’s up. Alternately, if you have someone who knows the code, don’t get stuck in “Am I seriously doing this wrong?” hell, and just ask the question. 9 times out of 10, the code is confusing because it’s confusing code.

6. Look before you implement

It’s great when you can finally work on the code you’ve inherited. Continue reading 10 Tips for Handling Inherited Code

Creating Holiday Cards and Other Unexpected OfficeWriter Projects

Last week, our VP of Development Sam and Senior Sales Engineer Chad were challenged to look at different ways to use OfficeWriter. The result? They put together a project designed to keep you in touch with your friends and family this holiday season. They looked at using OfficeWriter’s mail merge feature in a new way. Plus, they took that one step further, looking at how the technologies from this project can be applied to business applications within your company. Before heading home for the holidays, take a little inspiration from this behind-the-scenes video of unexpected ways to use OfficeWriter in building your reports and company documents.

Read the original post, get the code, and take a behind-the-scenes tour of the technologies it runs on.

Embedly Powered

via Vimeo

Want to get straight to the point? Skip to the end of the video to discover how this project could be applied to your business.

Troubleshooting Tools to Give Thanks to this Thanksgiving


[Once a week I snoop around the office, bothering my coworkers with questions on what they’re reading, listening to, consuming, or any other random inquiries I’d like to subject them to. Sometimes they even respond.]

Debug, de-stress. This week we’re giving thanks to these troubleshooting tools that keep us sane. We chose troubleshooting tools not for the alliteration value (though, that was a happy coincidence), but to find time-saving ways you can stay on top of your coding projects this holiday season. See below as we show our appreciation for developer tools we can’t live without. What other tools do you use to debug and de-stress? Tell us about them in the comments section below.

Chad, Sr. Sales Engineer

Fiddler2 helps make debugging web service calls easy.

Paula, Director of HR

Don’t even need to think about that one – System Restore Manager!

Ozgur, Development

I’d definitely list Fiddler and WireShark as some of the top troubleshooting tools that I am thankful for.

Aviva, VP of Technical Services

I mostly use the debugger in Visual Studio or custom code I write myself. Although it’s not a development tool, Procmon can be helpful, for monitoring activities on the filesystem and registry.

Stephanie, Technical Services

Total Commander is great. The program does a ton of stuff, but I really like its Continue reading Troubleshooting Tools to Give Thanks to this Thanksgiving

RetroTech Vol 1: Yuri Broze, Datasciencehead at Nomi

[Welcome to RetroTech, a joint blog series with Skimbox, where we journey back in time to an era of floppy disks, the Atari 800, and that unmistakable clicking sound of dial-up. We’re digging up the good ol’ days with interviews from tech’s most staunch patrons and giving you a glimpse of their technological firsts.]

Interviews with TechFrom Proust and his madeleines to Buzzfeed and early Britney, if there’s one thing that unites us, it’s our shared affection for nostalgia. And tech nostalgia is, at least in our opinion, a particularly rich strain, because it combines memories with cluck-tongued humor. So we decided to mine it with RetroTech, an interview series about personal technological firsts.

To kick of the series, we turned to Yuri Broze. Yuri is a number of things, including: maestro of the right and left brains, unicyclist, pianist, and world-class whistler. He may not be the only data scientist with a PhD in Music Psychology, but he is the only one we know.

First screen name: dkcrulz. Short for “Donkey Kong Country Rules.” Yuri picked it up at age 11, in 1994, right after Donkey Kong Country came out.

First email address:

First computer: An IBM Compatible running MS DOS. “I would write poetry on it and have every other line come back ‘bad command or file name.’”

First video/computer game: Lemonade Stand for Apple 2. (Ed — this looks like the least fun computer game ever, and I say that as a person who wrote an execrable version of Pong.) Continue reading RetroTech Vol 1: Yuri Broze, Datasciencehead at Nomi

Weekend Reading: What You Should Be Reading this Weekend

Credit: HubSpotNews that should be taking up space on your online reader, Kindle, iPad, or other miscellaneous gadgetry.

Data, Data, Data
Public Health: How Does the UK Compare with Europe? Interactive Map
Source: The Guardian
The Guardian‘s Data Blog produces interactive maps and images to visualize interesting data sets. This week they tackled life expectancies and overall health in the UK relative to Europe.

A Gestural Interface for Smart Watches
Source: MIT Technology Review
Researchers at the University of California at Berkeley and the University of California at Davis are developing a tiny chip that detects gestures in 3D. The chip is called Chirp, and its goal is to bring gesture controls to an array of devices, including wearable technology such as smart watches.

Circle Raises $9 Million Series A from Accel and General Catalyst to Make Bitcoins Mainstream
Source: TechCrunch 
Will Bitcoins make it after all? Circle, a Boston-based company, is a platform designed to make trading Bitcoin and other digital currencies easier. This is among the highest Series A funding received by startups in the digital currency space so far. See who invested and what this means for the company.

One Million Kids Have Signed Up for the Hour of Code. Let the Geeking Out Commence.
Source: PandoDaily
Mark your calendars for December 9th – 15th, as the week of Computer Science Education begins. During that time, Continue reading Weekend Reading: What You Should Be Reading this Weekend

Meet the Team: Seth

Hello and welcome to our Meet the Team series, in which we aim to give you deeper insight into the minds and personalities of those who make up this eclectic, close-knit group. We are developers, marketers, and technical support engineers, and at work we craft everything from Microsoft reporting APIs to mobile email applications. And outside of work? Let’s just say racing against the machine during hackathons, building architecturally sound beer towers during retros, and paddling down the Charles during the warmer months are simply the beginning.

SethMeet Seth – our quality control man, subscriber of (and living) This Developer’s Life, most closely personified by a strong spring lager, and powerless to the smile a clever line of code brings.

1. What do you do?

I’m a software engineer on the OfficeWriter team, so I spend my days hunting bugs, implementing cool new features, and trying to come up with new products.

2. What are you listening to right now?

Lake Street Dive – Clear a Space

3. If you could build any app, what would it be and why?

A contact de-duplication/management app that actually works well.

Also a bus/train app that just shows all departure times at the nearest stop…why do I need to choose a stop? My phone knows where I am!

4. When you were 5 what did you want to be and why?

In my early years I wanted to be a nature and wildlife photographer, working for National Geographic.  I was always going around taking pictures of landscapes and animals.  On our family trips to national parks, my younger brother and I would always get as close as we could to the wildlife (including a grizzly bear once) to get a good photo.

5. If you were a beer what would you be and why? Continue reading Meet the Team: Seth

What’s New in OfficeWriter 8.6

64-bit Support in OfficeWriter Designer

OfficeWriter 8.6 marks the initial release of the OfficeWriter Designer .NET, a redesign of the original OfficeWriter Designer, using the latest technologies and best practices.


The OfficeWriter Designer .NET is available for both 64-bit and 32-bit Excel and includes:

  • Better user experience with updated dialog boxes
  • Improved access to Report Properties
  • Stronger support for viewing reports with parameters
  • New import template functionality (also available in the original OfficeWriter Designer)


The Designer .NET does not currently have full backwards compatibility with the original OfficeWriter designer. To find out if the Designer .NET will support your reports, review our quick guide or read about all of the differences in full in our documentation.

The OfficeWriter Designer .NET is available for download from our product updates page or through our evaluation sign-up.

Classic Pivot Tables

Starting in OfficeWriter 8.6, you can create PivotTables with the classic grid layout using the PivotTableSettings.ClassLayout property. This is the same as setting the classic layout property under PivotTable options. Continue reading What’s New in OfficeWriter 8.6