I'm wondering if there is a simple way to import a stream (Excel file) from a database instead of the usual case of study which open a dialog box?
=> XlsxFormatProvider().Import(stream)
Is it necessary to override ImportOverride in XlsxFormatProvider in order to not generate error like "no directory found!" (avoid those kind of control)
Do you have a simple solution to perform that?
Thanks
JG
5 Answers, 1 is accepted
Overriding ImportOverride in XlsxFormatProvider is not necessary. There is a static class called WorkbookFormatProvidersManager which has a method Import. Using this method you can retrieve a Workbook object and set it to your RadSpreadsheet. Here is some code you can find useful:
using
(FileStream fileStream = File.OpenRead(
"test.xlsx"
))
{
this
.spreadsheet.Workbook = WorkbookFormatProvidersManager.Import(
".xlsx"
, fileStream);
}
WorkbookFormatProvidersManager.RegisterFormatProvider(
new
XlsxFormatProvider());
Hope that helps. If you have any other difficulties get back to us.
All the best,
Andrew
the Telerik team
Explore the entire Telerik portfolio by downloading Telerik DevCraft Ultimate.
Thanks this works perfectly.
Is it possible to import other excel file format such as .xls/.xlsm ?
GJ
For the time being RadSpreadsheet supports three formats as you can read here. For Q2 2013 we plan to extend our XLSX support, but unfortunately new formats beside those described in this article won't be supported. However after Q2 release we will evaluate the effort and demand of new formats and if possible add support for the most requested ones.
Andrew
the Telerik team
Explore the entire Telerik portfolio by downloading Telerik DevCraft Ultimate.
follwing code i am using
Workbook workbook;
IWorkbookFormatProvider formatProvider = new XlsxFormatProvider();
using (FileStream input = new FileStream(filePath, FileMode.Open))
{
workbook = formatProvider.Import(input);
}
when i am trying to import the differnt excel files then some files successfully loaded and some are not giving the follwoing two kind of errors
Error 1:
{System.IndexOutOfRangeException: Index was outside the bounds of the array.
at Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.Model.Types.Ref..ctor(String range) in c:\TB\135\WPF_Scrum\Release_WPF\Sources\Development\Documents\Spreadsheet\FormatProviders\OpenXml\Xlsx\Model\Types\Ref.cs:line 51
at Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.Model.Types.StringConvertibleFactory.<.cctor>b__1(String s) in c:\TB\135\WPF_Scrum\Release_WPF\Sources\Development\Documents\Spreadsheet\FormatProviders\OpenXml\Xlsx\Model\Types\StringConvertibleFactory.cs:line 23
at Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.Model.Types.StringConvertibleFactory.CreateInstance(Type type, String value) in c:\TB\135\WPF_Scrum\Release_WPF\Sources\Development\Documents\Spreadsheet\FormatProviders\OpenXml\Xlsx\Model\Types\StringConvertibleFactory.cs:line 45
at Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.OpenXml.OpenXmlAttribute`1.SetStringValue(String value) in c:\TB\135\WPF_Scrum\Release_WPF\Sources\Development\Documents\Spreadsheet\FormatProviders\OpenXml\OpenXml\OpenXmlAttributeOfT.cs:line 88
at Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.OpenXml.OpenXmlElementBase.ReadFrom(IOpenXmlReader reader) in c:\TB\135\WPF_Scrum\Release_WPF\Sources\Development\Documents\Spreadsheet\FormatProviders\OpenXml\OpenXml\OpenXmlElementBase.cs:line 140
at Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.OpenXml.OpenXmlElementBase.ReadFrom(IOpenXmlReader reader) in c:\TB\135\WPF_Scrum\Release_WPF\Sources\Development\Documents\Spreadsheet\FormatProviders\OpenXml\OpenXml\OpenXmlElementBase.cs:line 159
at Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.OpenXml.OpenXmlElementBase.ReadFrom(IOpenXmlReader reader) in c:\TB\135\WPF_Scrum\Release_WPF\Sources\Development\Documents\Spreadsheet\FormatProviders\OpenXml\OpenXml\OpenXmlElementBase.cs:line 159
at Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.OpenXml.OpenXmlElementBase.ReadFrom(IOpenXmlReader reader) in c:\TB\135\WPF_Scrum\Release_WPF\Sources\Development\Documents\Spreadsheet\FormatProviders\OpenXml\OpenXml\OpenXmlElementBase.cs:line 159
at Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.OpenXml.OpenXmlElementBase.ReadFrom(IOpenXmlReader reader) in c:\TB\135\WPF_Scrum\Release_WPF\Sources\Development\Documents\Spreadsheet\FormatProviders\OpenXml\OpenXml\OpenXmlElementBase.cs:line 159
at Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.OpenXml.OpenXmlPartBase.ReadFrom(IOpenXmlReader reader) in c:\TB\135\WPF_Scrum\Release_WPF\Sources\Development\Documents\Spreadsheet\FormatProviders\OpenXml\OpenXml\OpenXmlPartBase.cs:line 63
at Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.Import.XlsxImporter.ReadXlsxPartFromPackage(ZipPackageEntry zipPackageEntry, XlsxPartBase part) in c:\TB\135\WPF_Scrum\Release_WPF\Sources\Development\Documents\Spreadsheet\FormatProviders\OpenXml\Xlsx\Import\XlsxImporter.cs:line 120
at Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.Import.XlsxImporter.ReadAllParts(Dictionary`2 zipPackageEntries, ContentTypesPart contentTypesPart) in c:\TB\135\WPF_Scrum\Release_WPF\Sources\Development\Documents\Spreadsheet\FormatProviders\OpenXml\Xlsx\Import\XlsxImporter.cs:line 136
at Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.Import.XlsxImporter.Import(Stream input, XlsxImportSettings settings) in c:\TB\135\WPF_Scrum\Release_WPF\Sources\Development\Documents\Spreadsheet\FormatProviders\OpenXml\Xlsx\Import\XlsxImporter.cs:line 99
at Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.XlsxFormatProvider.ImportOverride(Stream input) in c:\TB\135\WPF_Scrum\Release_WPF\Sources\Development\Documents\Spreadsheet\FormatProviders\OpenXml\Xlsx\XlsxFormatProvider.cs:line 122
at Telerik.Windows.Documents.Spreadsheet.FormatProviders.WorkbookFormatProviderBase.Import(Stream input) in c:\TB\135\WPF_Scrum\Release_WPF\Sources\Development\Documents\Spreadsheet\Core\FormatProviders\WorkbookFormatProviderBase.cs:line 39
at DocumentViewer.MainWindow.LoadExcel(String filePath) in C:\Users\tufailm\Desktop\New folder\DocViewer\DocumentViewer\DocumentViewer\MainWindow.xaml.cs:line 135}
Error 2:
{System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
at Telerik.Windows.Documents.Spreadsheet.Core.DataStructures.QueueDictionary`2.get_Item(TKey key) in c:\TB\135\WPF_Scrum\Release_WPF\Sources\Development\Documents\Spreadsheet\Core\Core\DataStructures\QueueDictionary.cs:line 64
at Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.Contexts.ResourceIndexedTable`1.get_Item(Int32 index) in c:\TB\135\WPF_Scrum\Release_WPF\Sources\Development\Documents\Spreadsheet\FormatProviders\OpenXml\Xlsx\Contexts\ResourceIndexedTable.cs:line 27
at Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.Model.Elements.Stylesheet.ColorElementBase.CreateThemableColor(XlsxWorkbookImportContext context) in c:\TB\135\WPF_Scrum\Release_WPF\Sources\Development\Documents\Spreadsheet\FormatProviders\OpenXml\Xlsx\Model\Elements\Stylesheet\ColorElementBase.cs:line 127
at Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.Model.Elements.Stylesheet.FontElement.CopyPropertiesTo(XlsxWorkbookImportContext context, FontInfo font) in c:\TB\135\WPF_Scrum\Release_WPF\Sources\Development\Documents\Spreadsheet\FormatProviders\OpenXml\Xlsx\Model\Elements\Stylesheet\FontElement.cs:line 233
at Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.Model.Elements.Stylesheet.FontsElement.CreateFontInfo(XlsxWorkbookImportContext context, FontElement fontElement) in c:\TB\135\WPF_Scrum\Release_WPF\Sources\Development\Documents\Spreadsheet\FormatProviders\OpenXml\Xlsx\Model\Elements\Stylesheet\FontsElement.cs:line 84
at Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.Model.Elements.Stylesheet.FontsElement.CopyPropertiesTo(XlsxWorkbookImportContext context, ResourceIndexedTable`1 fontTable) in c:\TB\135\WPF_Scrum\Release_WPF\Sources\Development\Documents\Spreadsheet\FormatProviders\OpenXml\Xlsx\Model\Elements\Stylesheet\FontsElement.cs:line 74
at Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.Model.Elements.Stylesheet.StyleSheetElement.CopyPropertiesTo(XlsxWorkbookImportContext context, StyleSheet styleSheet) in c:\TB\135\WPF_Scrum\Release_WPF\Sources\Development\Documents\Spreadsheet\FormatProviders\OpenXml\Xlsx\Model\Elements\Stylesheet\StyleSheetElement.cs:line 202
at Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.Model.Parts.StylesPart.Import(XlsxWorkbookImportContext context) in c:\TB\135\WPF_Scrum\Release_WPF\Sources\Development\Documents\Spreadsheet\FormatProviders\OpenXml\Xlsx\Model\Parts\StylesPart.cs:line 85
at Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.Import.XlsxImporter.Import(Stream input, XlsxImportSettings settings) in c:\TB\135\WPF_Scrum\Release_WPF\Sources\Development\Documents\Spreadsheet\FormatProviders\OpenXml\Xlsx\Import\XlsxImporter.cs:line 106
at Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.XlsxFormatProvider.ImportOverride(Stream input) in c:\TB\135\WPF_Scrum\Release_WPF\Sources\Development\Documents\Spreadsheet\FormatProviders\OpenXml\Xlsx\XlsxFormatProvider.cs:line 122
at Telerik.Windows.Documents.Spreadsheet.FormatProviders.WorkbookFormatProviderBase.Import(Stream input) in c:\TB\135\WPF_Scrum\Release_WPF\Sources\Development\Documents\Spreadsheet\Core\FormatProviders\WorkbookFormatProviderBase.cs:line 39
at DocumentViewer.MainWindow.LoadExcel(String filePath) in C:\Users\tufailm\Desktop\New folder\DocViewer\DocumentViewer\DocumentViewer\MainWindow.xaml.cs:line 135}
Thank you for writing.
I kindly ask you to open a new support ticket and attach the xlsx files that cannot be imported there. Once we are able to replicate the issue on our side, we will do our best to address it. Thank you in advance.
I am looking forward to your reply.
Regards,
Boryana
Telerik