| « Поставить закладку » « Сделать стартовой » | |||
|
|||
|
Статьи:: .NET Framework :: XML в .NET :: Конвертирование Excel в XML файл/XML Схему и проверка данных из Excel на соответствие XML Схеме
Конвертирование Excel в XML файл/XML Схему и проверка данных из Excel на соответствие XML Схеме
ВведениеДовольно часто требуется конвертировать данные из Excel'я в формат XML ( как правило файл формата - stream/XML), который может использоваться в различных приложениях в качестве источника данных - например в веб-сервисах или промежуточных узлах много-звенных приложений таких, как BizTalk 2004. Может возникнуть множество ситуаций, в которых требуется определить корректность (и даже совместимость) данных листа данных Excel'я для определенной XML схемы. Так же может потребоваться сгенерировать такую XML схему на базе рабочего листов из Excel'я. Описываемая здесь утилита в комплексе с библиотекой поможет вам сделать все вышеописанное. Для данной библиотеки характерны следующие особенности:
В этой статье обсуждается реализация библиотеки функций . Библиотека содержит функциональное ядро для доступа и манипулирования данными из Excel'я. Утилита просто будет вызывать необходимые функции из библиотеки. При таком подходе мы можем использовать ту же самую библиотеку и в ASP.NET приложении (при этом необходимые изменения займут всего лишь около минуты). Варианты ПодключенияСуществуют два способа работы с Excel'вским файлом. Это можно осуществить при использовании Microsoft Office Component или с помощью Microsoft Jet Engine. Исходя из рекомендаций Microsoft, использование компонентов Office'а на сервере не желательно. Это значит, что если вы хотите использовать данную библиотеку для серверного приложения, то идея использования компонентов Office'а не является хорошей. Поэтому подключение будет реализовано с помощью Jet Engine. Подключение к Excel'ю, используя Jet EngineДля подключения к Excel'ю можно воспользоваться объектами OleDb, которые будут трактовать Excel, как базу данных, вследствие чего, необходимые данные могут быть легко извлечены по средствам обычных SQL запросов. Важным моментом при подключении к Excel'ю является определение следующих параметров:
Загрузка данных в DatasetПосле того, как при помощи Jet Engine соединение с Excel успешно установлено, загрузка данных в
public DataTable GetDataTable(string
strSheetName)
{
try
{
string strComand;
if(strSheetName.IndexOf("|") > 0)
{
/* если используется диапазон (Range).*/
SheetName = strSheetName.Substring(0,strSheetName.IndexOf("|"));
Range = strSheetName.Substring(strSheetName.IndexOf("|")+1);
strComand="select * from ["+SheetName+"$"+Range+"]";
}
else
{
strComand="select * from ["+strSheetName+"$]";
}
daAdapter=new OleDbDataAdapter(strComand,cn);
DataTable dt=new DataTable(strSheetName);
daAdapter.FillSchema(dt,SchemaType.Source);
daAdapter.Fill(dt);
cn.Close();
return dt ;
}
catch(Exception ex)
{
throw new Exception(ex.Message);
}
}
Конвертация данных из Dataset в данные формата XML и XML СхемуПосле загрузки данных в public
string
GetXML(string strSheetName, Boolean _blnSchema)
{
DataSet ds=new DataSet();
ds.Tables.Add(this.GetDataTable(strSheetName));
if(_blnSchema)
return ds.GetXmlSchema()+ds.GetXml();
else
return ds.GetXml();
}
Проверка соответствия структуры данных по XML СхемеРаз уж данные генерируются в форме XML, то мы можем проверить эти данные на корректность используя все то же объект public
string ValidateXML(string strSchemaFile,
string WorkSheet)
{
strParseError="";
XmlParserContext context = new
XmlParserContext(null,
new
XmlNamespaceManager(new NameTable()),
null, XmlSpace.None);
XmlTextReader xmlReader = new
XmlTextReader(this.GetXML(WorkSheet,
false), XmlNodeType.Element, context);
XmlValidatingReader objValidator = new
XmlValidatingReader(xmlReader);
/* устанавливаем для проверки правильности типов
ссылку на XSD Схему */
objValidator.ValidationType = ValidationType.Schema;
XmlSchemaCollection objSchemaCol = new XmlSchemaCollection();
objSchemaCol.Add("", strSchemaFile);
objValidator.Schemas.Add(objSchemaCol);
objValidator.ValidationEventHandler +=
new ValidationEventHandler(ShowCompileErrors);
try
{
while (objValidator.Read()) { }
}
catch(Exception objError)
{
throw new Exception(objError.Message);
}
finally
{
xmlReader.Close();
}
return strParseError;
}
private void ShowCompileErrors(object sender, ValidationEventArgs args)
{
strParseError+="::"+args.Message+"rn" ;
}
Пакетная обработкаПакетная обработка будет использовать массив строк (для описания например рабочих книг /Workbook/), а потом используя функции описанные выше будет генерировать XML файл и Схему для каждой рабочей книги (Workbook). Планируемые улучшенияГенерирование рабочего листа Excel на основе заданной XML Схемы. Download BinariesYou can download the working application here [9.48 Kb]. History
Автор Gaurang Desai , перевод - kate aka cronOS (beststory@yandex.ru) Рубрика: XML в .NET
HTML 5: пять вещей вызывающих особый интер....
HTML 5 — это грядущее обновление гипертекстового языка разметки, основного способа создания контента для размещения его во всемирной паутине. Разработка HTML остановилась в 1999 году, на версии HTML 4.01 и с тех пор web-содержимое изменилось так, что текущие спецификации HTML перестали соответствовать сегодняшним требованиям. HTML 5 нацелен на то, чтобы увеличить функциональную совместимость HTML и соответствовать растущим требованиям разнообразного и смешанного web-контента. HTML 5 так же нацелен на устранение недостатков четвертой версии. В этой статье мы взглянем на 5 новых интересных вещей в HTML 5.
Подробнее... |
Рубрика: Html
| Добавлено: 22.12.2008
asp.net: ListView с разных сторон.
Элемент управления ListView был представлен в .Net Framework 3.5 как замена устаревшему GridView. Новый элемент имеет более расширенный функционал, чем его предшественник, но в тоже время лишен некоторых внутренних механизмов, что впрочем целиком следствие из расширенной универсальности ListView. Среди отличий ListView и GridView можно назвать и гибкую настройку разметки, что позволяет выводить данные не только в табличном виде, но и вообще в любом каком пожелает программист. Благодаря шаблонам ItemTemplate, EditItemTemplate, InsertItemTeplate можно настроить внешний вид при любом из состояний ListView: редактировании или выборе элемента.
Подробнее... |
Рубрика: .NET компоненты
| Добавлено: 22.12.2008
Создание кросс-таб отчета в Stimulsoft Rep....
Компания Стимулсофт предоставляет для разработчиков мощный набор инструментов для создания отчетов для Microsoft Visual Studio .Net 2005 и 2008; эти инструменты доступны как для Windows Forms, так и для Web Forms. Это генератор отчетов Stimulsoft Reports.Net. Генератор отчетов Stimulsoft Reports.Net имеет ряд особенностей: простая работа с дизайнером отчетов, полная поддержка экспорта в PDF, Word, Excel и многие другие форматы. Crystal Report и Microsoft Reporting Service – очень хорошие программные продукты для повседневной работы, но, если Вам необходимо создать отчеты с поддержкой кросс-табов, drill down, Ajax, штрих-кодов и возможностью подключения одновременно более одного источника данных, то Stimulsoft Reports.Net поможет Вам сэкономить массу времени. Также, данный генератор отчетов позволяет пользователям создавать свои собственные отчеты любой сложности. И все эти особенности делают Stimulsoft Reports.Net хорошим выбором в сфере программных продуктов для Business Intelligence.
Подробнее... |
Рубрика: .NET компоненты
| Добавлено: 22.12.2008
Остальные статьи: |
Цитата дня (все,добавить):
|
Realcoding.NET
© 2003-2008 |
Контакты |
Реклама на сайте
|