public void Can_Add_WorkSheet() { using (ExcelOutputWriter writer = new ExcelOutputWriter("Test.xls", DefaultExcelOption)) { writer.AddSheet("Test Sheet"); } }
public void Can_Add_Data_To_WorkSheet() { using (ExcelOutputWriter writer = new ExcelOutputWriter("Test.xls", DefaultExcelOption)) { writer.SetCurrentSheet(mySearchHeader); writer.PrintRow("none", null, "field1", "field2", "field3", "field4"); writer.PrintRow("none", () => null, "field1", "field2", "field3", "field4"); writer.PrintRow("none", () => new List <string>(), "field1", "field2", "field3", "field4"); writer.PrintRow("none", null, "field1", "field2", "field3", "field4"); while (writer.myLinesWritten != 4) { Thread.Sleep(50); } Assert.AreEqual("Type", writer.GetCell(writer.myCurrentSheet, "A4").Value2.ToString(), "Expected addtional content 1"); Assert.AreEqual("Field", writer.GetCell(writer.myCurrentSheet, "B4").Value2.ToString(), "Expected addtional content 2"); Assert.AreEqual("field1", writer.GetCell(writer.myCurrentSheet, "A5").Value2.ToString(), "Expected addtional content 1"); Assert.AreEqual("field1", writer.GetCell(writer.myCurrentSheet, "A8").Value2.ToString(), "Expected addtional content 2"); Assert.AreEqual("field4", writer.GetCell(writer.myCurrentSheet, "D5").Value2.ToString(), "Expected addtional content 1"); Assert.AreEqual("field4", writer.GetCell(writer.myCurrentSheet, "D8").Value2.ToString(), "Expected addtional content 2"); } }
public void Can_Add_WorkSheet_And_Columns() { using (ExcelOutputWriter writer = new ExcelOutputWriter("Test.xls", DefaultExcelOption)) { writer.SetCurrentSheet(mySearchHeader); Assert.AreEqual("Type", writer.GetCell(writer.myCurrentSheet, "A4").Value2.ToString(), "Expected addtional content 1"); Assert.AreEqual("Field", writer.GetCell(writer.myCurrentSheet, "B4").Value2.ToString(), "Expected addtional content 2"); } }
public void Can_Write_ToSheet_From_Many_Threads() { Worksheet currentSheet = null; ApplicationClass excel = null; using (ExcelOutputWriter writer = new ExcelOutputWriter(null, ExcelOptions.None)) { string ExtCol1 = "ext1"; string ExtCol2 = "ext2"; writer.SetCurrentSheet(mySearchHeader); currentSheet = writer.myCurrentSheet; excel = writer.myExcel; int LinesToWrite = 30; System.Action acc = () => { while (true) { if (LinesToWrite <= 0) { break; } writer.PrintRow("none", () => new List <string> { ExtCol1, ExtCol2 }, Thread.CurrentThread.ManagedThreadId.ToString(), LinesToWrite.ToString(), "field3", "field4"); Interlocked.Decrement(ref LinesToWrite); } }; for (int i = 0; i < 5; i++) { acc.BeginInvoke(null, null); } while (LinesToWrite > 0) { Thread.Sleep(50); } Console.WriteLine("Did enqeue all items"); } Assert.IsNotNull(currentSheet.get_Range("B34", Type.Missing).Value2); excel.Quit(); }
public void Can_Add_Additional_Columns() { using (ExcelOutputWriter writer = new ExcelOutputWriter("Test.xls", DefaultExcelOption)) { string ExtCol1 = "ext1"; string ExtCol2 = "ext2"; writer.SetCurrentSheet(mySearchHeader); writer.PrintRow("none", () => new List <string> { ExtCol1, ExtCol2 }, "field1", "field2", "field3", "field4"); while (writer.myLinesWritten == 0) { Thread.Sleep(50); } Assert.AreEqual(ExtCol1, writer.GetCell(writer.myCurrentSheet, "E5").Value2.ToString(), "Expected addtional content 1"); Assert.AreEqual(ExtCol2, writer.GetCell(writer.myCurrentSheet, "F5").Value2.ToString(), "Expected addtional content 2"); } }
public void Can_Execute_Excel_From_Non_US_Thread() { CultureInfo old = Thread.CurrentThread.CurrentCulture; try { Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; SheetInfo noSourceFilecol = new SheetInfo { Columns = new List <ColumnInfo> { new ColumnInfo { Name = "Type", Width = 80 }, new ColumnInfo { Name = "Assembly", Width = 60 }, }, SheetName = "Test Sheet" }; using (ExcelOutputWriter writer = new ExcelOutputWriter(null, DefaultExcelOption)) { writer.SetCurrentSheet(noSourceFilecol); writer.PrintRow("{0} {1}", null, "Col1", "Col2"); } } finally { Thread.CurrentThread.CurrentCulture = old; } }
public void Can_WriteSheets_With_No_SourceFile_Column() { SheetInfo noSourceFilecol = new SheetInfo { Columns = new List <ColumnInfo> { new ColumnInfo { Name = "Type", Width = 80 }, new ColumnInfo { Name = "Assembly", Width = 60 }, }, SheetName = "Test Sheet" }; using (ExcelOutputWriter writer = new ExcelOutputWriter(null, DefaultExcelOption)) { writer.SetCurrentSheet(noSourceFilecol); writer.PrintRow("{0} {1}", null, "Col1", "Col2"); } }
public Task <HttpResponseMessage> ExportDocumentsLeftToReplicate([FromBody] StudioTasksController.ExportData optionsJson) { var result = GetEmptyMessage(); var taskId = optionsJson.ProgressTaskId; var status = new OperationStatus(); var tcs = new TaskCompletionSource <object>(); try { var sp = Stopwatch.StartNew(); Database.Tasks.AddTask(tcs.Task, status, new TaskActions.PendingTaskDescription { StartTime = SystemTime.UtcNow, TaskType = TaskActions.PendingTaskType.ExportDocumentsLeftToReplicate, Description = "Monitoring progress of export of docs left to replicate" }, taskId, null, skipStatusCheck: true); var requestString = optionsJson.DownloadOptions; ServerInfo serverInfo; using (var jsonReader = new RavenJsonTextReader(new StringReader(requestString))) { var serializer = JsonExtensions.CreateDefaultJsonSerializer(); serverInfo = (ServerInfo)serializer.Deserialize(jsonReader, typeof(ServerInfo)); } var documentsToReplicateCalculator = new DocumentsLeftToReplicate(Database); if (serverInfo.SourceId != documentsToReplicateCalculator.DatabaseId) { throw new InvalidOperationException("Cannot export documents to replicate from a server other than this one!"); } // create PushStreamContent object that will be called when the output stream will be ready. result.Content = new PushStreamContent((outputStream, content, arg3) => { using (var writer = new ExcelOutputWriter(outputStream)) { try { writer.WriteHeader(); writer.Write("document-ids-left-to-replicate"); long count = 0; long skipped = 0; Action <string> action = (documentId) => { writer.Write(documentId); if (++count % 1000 != 0) { return; } status.MarkProgress($"Exported {count:#,#} documents"); outputStream.Flush(); }; Action skippedAction = () => { if (++skipped % 100 != 0) { return; } status.MarkProgress($"Skipped {skipped:#,#} documents"); outputStream.Flush(); }; documentsToReplicateCalculator.ExtractDocumentIds(serverInfo, action, skippedAction); var message = $"Completed export of {count:#,#} document ids"; status.MarkCompleted(message, sp.Elapsed); } catch (Exception e) { status.ExceptionDetails = e.ToString(); status.MarkFaulted(e.ToString()); writer.WriteError(e); throw; } finally { tcs.SetResult("Completed"); outputStream.Close(); } } }); var fileName = $"Documents to replicate from '{serverInfo.SourceUrl}' to '{serverInfo.DestinationUrl}', " + $"{DateTime.Now.ToString("yyyy-MM-dd HH-mm", CultureInfo.InvariantCulture)}"; foreach (char c in Path.GetInvalidFileNameChars()) { fileName = fileName.Replace(c, '_'); } result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = fileName + ".csv" }; } catch (Exception e) { status.ExceptionDetails = e.ToString(); status.MarkFaulted(e.ToString()); tcs.SetResult("Completed"); throw; } return(new CompletedTask <HttpResponseMessage>(result)); }
private static void WriteOutput(string excelLocationString, ScoringOutput scores, Application app) { ExcelOutputWriter writer = new ExcelOutputWriter(excelLocationString, app); writer.Write(scores); }