<p>I need to design a small project for generating excel reports in .NET, which will be sent to users to use.</p>

<p>The excel reports will contain PivotTables.</p>

<p>I don't have much experience with them, but I can think of three implementation alternatives:</p>

<ol>
<li>Set a query for it, populate it, send it disconnected. This way the user will be able to group values and play a little, but he will not be able to refresh the data.</li>
<li>Generate a small access database and send it along with the excel file, connect to it.</li>
<li>Copy the data to the excel (perhaps in some other sheet) and connect to the data there. This will make the excel file very large I think.</li>
</ol>

<p>What would be the best alternative in regards to performance vs usability? Is there another alternative I don't know about?</p>

```
```
boolean isPalindrome(String str1) {
  //first strip out punctuation and spaces
  String stripped = str1.replaceAll("[^a-zA-Z0-9]", "");
  return stripped.equalsIgnoreCase((new StringBuilder(stripped)).reverse().toString());
}
```
```
Java version