AD
Administrator
Syncfusion Team
July 15, 2008 07:45 AM UTC
Here is a minimal sample showing how you can iterate through the grid and export its data to an XLS file using XlsIO.
The move rows, you need to be using the latest code base, Vol3 (6.3.0.30). It has a method exposed, grid.Model.MoveRows. The sample also has a button showing its use.
WpfApplication1_52d0a3a0.zip
AD
Administrator
Syncfusion Team
August 28, 2008 12:18 PM UTC
This works fine. But i am not getting a column to the size as required to hold the value. Whether i could able to merge cells?
AD
Administrator
Syncfusion Team
August 28, 2008 01:01 PM UTC
We will be offerring full excel converter support similar to what we offer with our Windows Forms Grid. This support will allow you to move over column widths, colors, etc.
For now, if you want to support particular options, then you would have to explicitly add such support to your code. For column widths, you can do this using IWorkSheet.SetColumnWidth. Here is the button handler from the sample above with support for exporting columns widths added.
private void Button_Click_1(object sender, RoutedEventArgs e)
{
//Export to Excel
ExcelEngine excelEngine = new ExcelEngine();
IApplication application = excelEngine.Excel;
IWorkbook myWorkbook = excelEngine.Excel.Workbooks.Add();
IWorksheet mySheet = myWorkbook.Worksheets[0];
for (int i = 1; i <= this.grid.Model.RowCount; i++)
{
for (int j = 1; j <= this.grid.Model.ColumnCount; j++)
{
mySheet.Range[i, j].Value2 = this.grid.Model[i, j].Text;
}
}
for (int j = 1; j < this.grid.Model.ColumnCount; j++)
{
mySheet.SetColumnWidthInPixels(j, (int)grid.Model.ColumnWidths[j]);
}
myWorkbook.SaveAs("SampleOne.xls");
excelEngine.ThrowNotSavedOnDestroy = false;
excelEngine.Dispose();
System.Diagnostics.Process.Start("SampleOne.xls");
}
AD
Administrator
Syncfusion Team
August 28, 2008 01:27 PM UTC
One more thing.
pls tell me abouthow to set border for group of cells, and merging a group of cells.
I don know how to use those merge functions with IRange as parameter
AD
Administrator
Syncfusion Team
August 28, 2008 03:24 PM UTC
If you own our Windows Forms Source code, you can see how to go about doing these things from that code.
Here is the sample modified to show CoveredCells and also to mark special boundaries. It is not full-featured so if you need other support, you will have to add additional code.
http://www.syncfusion.com/support/user/uploads/WpfApplication1_1_542eb1b7.zip
AD
Administrator
Syncfusion Team
August 29, 2008 04:08 AM UTC
its fine..
i am writing a title for a grid in excel. In that situation i used the mergewith() function like this
myWorksheet.Range[RowIndex,ColumnIndex] .MergeWith(myWorksheet.Range[RowIndex, ColumnIndex + DataGrid.ColumnCount]);
but i am not able to merge the first row with the number of columns.
AD
Administrator
Syncfusion Team
August 29, 2008 07:00 AM UTC
Here is code that I placed in the last posted sample that merges the first row in Excel even though ity is not covered in the grid. Note that the range was defined using 4 arguments. In your code, you only have 2.
//....
HandleCoveredCells(mySheet);
IRange xlRange = mySheet.Range[1, 1, 1, 1 + grid.Model.ColumnCount - 1]; //inserted...
xlRange.Merge(); //inserted...
for (int j = 1; j < this.grid.Model.ColumnCount; j++)
{
mySheet.SetColumnWidthInPixels(j, (int)grid.Model.ColumnWidths[j]);
}
//.....
AD
Administrator
Syncfusion Team
August 29, 2008 09:13 AM UTC
Thanks. I tried ur code and it works fine
AD
Administrator
Syncfusion Team
September 4, 2008 05:47 AM UTC
Hello Clay,
I return that Iworkbook to another assembly and tried to save it from there. But i am getting an exception like
"exception = {"Style with specified name does not exist. Name: Normal\rParameter name: value"}"
IWorkbook workBook = SomeInstance.ExportToExcel(gridControl)
workBook.SaveAs(fileName, ExcelSaveType.SaveAsXLS);
fileName = "c:\\test.xls"
AD
Administrator
Syncfusion Team
September 4, 2008 05:55 AM UTC
Its resolved..
Its because of disposing excel engine:-)
GA
Giancarlo Aguilera
April 6, 2009 01:16 PM UTC
Clay,
Is this Excel converter ready yet for the WPF grid?
Thanks
>We will be offerring full excel converter support similar to what we offer with our Windows Forms Grid. This support will allow you to move over column widths, colors, etc.
For now, if you want to support particular options, then you would have to explicitly add such support to your code. For column widths, you can do this using IWorkSheet.SetColumnWidth. Here is the button handler from the sample above with support for exporting columns widths added.
private void Button_Click_1(object sender, RoutedEventArgs e)
{
//Export to Excel
ExcelEngine excelEngine = new ExcelEngine();
IApplication application = excelEngine.Excel;
IWorkbook myWorkbook = excelEngine.Excel.Workbooks.Add();
IWorksheet mySheet = myWorkbook.Worksheets[0];
for (int i = 1; i <= this.grid.Model.RowCount; i++)
{
for (int j = 1; j <= this.grid.Model.ColumnCount; j++)
{
mySheet.Range[i, j].Value2 = this.grid.Model[i, j].Text;
}
}
for (int j = 1; j < this.grid.Model.ColumnCount; j++)
{
mySheet.SetColumnWidthInPixels(j, (int)grid.Model.ColumnWidths[j]);
}
myWorkbook.SaveAs("SampleOne.xls");
excelEngine.ThrowNotSavedOnDestroy = false;
excelEngine.Dispose();
System.Diagnostics.Process.Start("SampleOne.xls");
}
AD
Administrator
Syncfusion Team
April 6, 2009 01:28 PM UTC
The ExcelConverter will not be in the Vol 2 release this month, but it is scheduled to be part of the Vol 2 Refresh build which will be out in May.
AD
Administrator
Syncfusion Team
August 7, 2009 08:46 AM UTC
Has this ExcelConverter been released as yet?
CB
Clay Burch
Syncfusion Team
August 13, 2009 02:33 PM UTC
No, not yet. We will have excel export support in the Vol 3 Refresh which is due out next week.
AD
Administrator
Syncfusion Team
August 19, 2009 11:57 AM UTC
Could you ensure that this handles grids with relations?
Perhaps providing the option to export the inner relations (or not in what i'm attempting to do!)
Thanks
Heath
MS
Mohamed Suhaib Fahad A.
Syncfusion Team
September 8, 2009 06:56 AM UTC
Hi Heath,
Yes, the excel export will include handling relations too. Please let me know if you need any more details.
Thanks,
Fahad
Grid.WPF Team
Syncfusion Inc.,
SU
Sunil
November 28, 2012 05:55 AM UTC
Hi
I am using syncfusion grid and trying to export grid data to excel. My grid contains more than 800 columns. As there is a limitation on maximum number of columns i exported data to 2 work sheets , but still some columns are missing. Is it possible to change the limitaion on Number of worksheets or number of columns in a worksheet.
Is there any direct method which exports the entire data into an excel with same format ,pictures and merging of cells??
SD
Sharal DCosta
October 1, 2013 09:38 AM UTC
Hi ,
I am using syncfusion grid and trying to export grid data to excel.
My grid contains 146 columns and 48000 rows.
I'm using below code to achieve the same.
private void Button_Click_1(object sender, RoutedEventArgs e)
{
//Export to Excel
ExcelEngine excelEngine = new ExcelEngine();
IApplication application = excelEngine.Excel;
IWorkbook myWorkbook = excelEngine.Excel.Workbooks.Add();
IWorksheet mySheet = myWorkbook.Worksheets[0];
for (int i = 1; i <= this.grid.Model.RowCount; i++)
{
for (int j = 1; j <= this.grid.Model.ColumnCount; j++)
{
mySheet.Range[i, j].Value2 = this.grid.Model[i, j].Text;
}
}
for (int j = 1; j < this.grid.Model.ColumnCount; j++)
{
mySheet.SetColumnWidthInPixels(j, (int)grid.Model.ColumnWidths[j]);
}
myWorkbook.SaveAs("SampleOne.xls");
excelEngine.ThrowNotSavedOnDestroy = false;
excelEngine.Dispose();
System.Diagnostics.Process.Start("SampleOne.xls");
}
My grid looks similar to the attached image. Please could you let me know how to set background colors as well as font colur to each cell.
Thanks.
Grid_Sample_8d8962a1.zip
SM
Saravanan M
Syncfusion Team
October 10, 2013 01:03 PM UTC
Hi Sharal,
We have analyzed your query.When you export more
number of row and columns it could take more time to export.If you want to
export background color you can export only background by using
FillBackgroundRGB API.You can refer the below codesnippet.
Codesnippet[C#]:
mySheet.Range[i, j].Value2 = this.grid.Model[i, j].Text;
var color=(this.grid.Model[i,j].Background as SolidColorBrush).Color;
mySheet.Range[i,
j].CellStyle.FillBackgroundRGB = System.Drawing.Color.FromArgb(color.A, color.R, color.G, color.B);
|
We have attached the sample based on your
requirement. Please find it
Please let us know if you need further assistance.
Regards,
Saravanan..
Excel_Export_Demo_Sample_b3162188.zip