How to print a spreadsheet
5 Replies
AA
Arulraj A
Syncfusion Team
February 5, 2019 01:03 PM UTC
Hi Christian,
Thank you for requesting this feature. This feature is already existing in our database and here’s the link to the feature request page
If the definition of this feature corresponds to your requirement, please vote and comment. We will prioritize the features every release based on the demands.
Regards,
Arulraj A
CH
Christian
February 6, 2019 11:25 AM UTC
Is there a recommendation on how to go about printing Excel until the new feature is available?
MG
Mohanraj Gunasekaran
Syncfusion Team
February 7, 2019 01:46 PM UTC
Hi Christian,
Thanks for your update.
As per our previous update, currently there is no in-built support to print the SfSpreadsheet. But, you can achieve this by exporting the SfSpreadsheet to pdf using PdfPage and PdfGrid then load that pdf file in PdfViewrCotrol to print the SfSpreadsheet those are available in “Syncfusion.PdfViewer.UWP.dll”. Please refer the following code example,
Code example
Xaml
|
xmlns:pdfviewer="using:Syncfusion.Windows.PdfViewer"
<pdfviewer:SfPdfViewerControl x:Name="pdfviewer"/> |
C#
|
//Create a new PDF document.
PdfDocument pdfDocument = new PdfDocument();
StorageFile storageFile = null;
foreach (var sheet in this.spreadsheet.Workbook.Worksheets)
{
//Create the page
PdfPage pdfPage = pdfDocument.Pages.Add();
//Create the parent grid
PdfGrid parentPdfGrid = new PdfGrid();
//Add the rows
for (int i = 0; i < this.spreadsheet.ActiveSheet.UsedRange.Row; i++)
{
PdfGridRow row1 = parentPdfGrid.Rows.Add();
row1.Height = 50;
parentPdfGrid.Columns.Add(this.spreadsheet.ActiveSheet.UsedRange.Column);
for (int j = 0; j < this.spreadsheet.ActiveSheet.UsedRange.Column; j++)
{
var style = this.spreadsheet.ActiveSheet.UsedRange[i, j];
PdfGridCell pdfGridCell = parentPdfGrid.Rows[i].Cells[j];
pdfGridCell.Value = style.Value;
}
}
//Draw the PdfGrid.
parentPdfGrid.Draw(pdfPage, PointF.Empty);
StorageFolder local = Windows.Storage.ApplicationData.Current.LocalFolder;
storageFile = await local.CreateFileAsync("Sample.pdf", CreationCollisionOption.ReplaceExisting);
//Save the document.
await pdfDocument.SaveAsync(storageFile);
}
if (storageFile != null)
{
FileStream stream = File.OpenRead(storageFile.Path);
pdfViewer.Unload();
pdfViewer.LoadDocument(stream);
//Print the pdf file.
pdfViewer.Print();
pdfDocument.Dispose();
} |
Sample link: http://www.syncfusion.com/downloads/support/directtrac/general/ze/SpreadsheetDemo-232389078
Please get back us if you need any further assistance on this.
Regards,
Mohanraj G
CH
Christian
February 11, 2019 12:41 PM UTC
Thank you.
I cannot get that demo to work. I changed the syncfusion references to nuget packages, I obviously we do not have the same folder structure.
The demo starts (very slow). Eventually I can see a grid with numbers, but the app is forzen.
Attachment: SpreadsheetDemo_4e508921.zip
SP
Subburaj Pandian Veluchamy
Syncfusion Team
February 12, 2019 11:30 AM UTC
Hi Christian,
Thank you for the update.
By default, SfSpreadsheet control does not have the support to print the cells. So, we have tried to load the cell values in PdfGrid and load that PdfGrid in PdfDocument. Then, we have used the PdfViewer control used to load and print that pdfDocument. So, obviously those operations will take this much of time to print the SfSpreadsheet. This is our current support to print the SfSpreadsheet control.
Please get back us, if you have any query on this.
Regards,
Subburaj Pandian V
Subburaj Pandian V
SIGN IN To post a reply.
- 5 Replies
- 4 Participants
-
CH Christian
- Feb 5, 2019 10:53 AM UTC
- Feb 12, 2019 11:30 AM UTC