Открываю эксельный(эксель 2003) файл:
XmlTextReader reader = new XmlTextReader(@"C:\1.xsl");
Выдает ошибку:
System.Xml.XmlException: Недопустимый знак для указанной кодировки. Строка 1, позиция 1.
в System.Xml.XmlTextReaderImpl.Throw(Exception e)
в System.Xml.XmlTextReaderImpl.Throw(String res, String arg)
в System.Xml.XmlTextReaderImpl.Throw(Int32 pos, String res)
в System.Xml.XmlTextReaderImpl.InvalidCharRecovery(Int32& bytesCount, Int32& charsCount)
в System.Xml.XmlTextReaderImpl.GetChars(Int32 maxCharsCount)
в System.Xml.XmlTextReaderImpl.ReadData()
в System.Xml.XmlTextReaderImpl.SwitchEncoding(Encoding newEncoding)
в System.Xml.XmlTextReaderImpl.ParseXmlDeclaration(Boolean isTextDecl)
в System.Xml.XmlTextReaderImpl.Read()
в System.Xml.XmlTextReader.Read()
в PRobotTest.Program.TestBusinessCiclesExcell(String filePath) в C:\Work\PrognoseRobot\PRobotTest\Program.cs:строка 41
Как работать с этим экселем через xml? Заканапатился уже
Здравствуйте, Ovl, Вы писали:
E>>Как работать с этим экселем через xml? Заканапатился уже Ovl>так он же не в xml сохранен, что вы хотите от бедного ридера?
Да... запарился я совсем... Я хочу работать с Excel файлами, как с хмl... Говорят так гораздо быстрее да и удобнее. Через объектную модель Excel не удобно...
Здравствуйте, Spiceman, Вы писали:
S>Здравствуйте, Ellin, Вы писали: E>>Открываю эксельный(эксель 2003) файл: E>>Как работать с этим экселем через xml? Заканапатился уже S>А разве формат xml у офисных файлов стал не с 2007 офиса?
Я думал что ридер может эти бинарные читать и как том внутри себя конвертировать их в xml...
Здравствуйте, Ellin, Вы писали:
E>Как работать с этим экселем через xml? Заканапатился уже
Начиная с 2003 есть такая возможность.
Сперва его надо сохранить как XML. Затем работаешь с ним. Можно и читать и сохранять. И сохраненный файл потом корректно откроется самим Excel по двойному клику (несмотря на расширение).
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Здравствуйте, Александр Кузнецов, Вы писали:
АК>Начиная с 2003 есть такая возможность. АК>Сперва его надо сохранить как XML. Затем работаешь с ним. Можно и читать и сохранять. И сохраненный файл потом корректно откроется самим Excel по двойному клику (несмотря на расширение).
При этом абсолютно весь функционал сохраняется? Т.е. если вдруг формулы пропадут или еще что-то меня убьют . Можно ли это как-то программно сделать. Вот есть у меня директория с 800 мегов этих файлов — все надо конвертировать.
E>Да... запарился я совсем... Я хочу работать с Excel файлами, как с хмl... Говорят так гораздо быстрее да и удобнее. Через объектную модель Excel не удобно...
вполне удобно. но все зависит от того что надо сделать. если просто прочитать данные — то и jet подойдет. если менять — то удобнее все-таки automation
Здравствуйте, Ellin, Вы писали:
E>Здравствуйте, Александр Кузнецов, Вы писали:
АК>>Начиная с 2003 есть такая возможность. АК>>Сперва его надо сохранить как XML. Затем работаешь с ним. Можно и читать и сохранять. И сохраненный файл потом корректно откроется самим Excel по двойному клику (несмотря на расширение).
E>При этом абсолютно весь функционал сохраняется? Т.е. если вдруг формулы пропадут или еще что-то меня убьют . Можно ли это как-то программно сделать. Вот есть у меня директория с 800 мегов этих файлов — все надо конвертировать.
ничего не пропадет. это его стандарт — обязан поддерживать в полном объеме.
для конвертации можно написать тул открыл-"сохранил как"-закрыл-открыл-"сохранил как"-закрыл...
800 метров — не так много, можно сделать десяток-другой бекапов на всякий пожарный.
Здравствуйте, Ovl, Вы писали:
Ovl>ничего не пропадет. это его стандарт — обязан поддерживать в полном объеме.
Ну в ХМЛе 2003 офиса что-то все-таки пропадало Касательно формул не уверен, а вот группировки слетали точно — причем сам Эксель при сохранении в ХМЛ предупреждал, что некоторые данные потеряются.
Здравствуйте, Воронков Василий, Вы писали:
ВВ>Здравствуйте, Ovl, Вы писали:
Ovl>>ничего не пропадет. это его стандарт — обязан поддерживать в полном объеме.
ВВ>Ну в ХМЛе 2003 офиса что-то все-таки пропадало Касательно формул не уверен, а вот группировки слетали точно — причем сам Эксель при сохранении в ХМЛ предупреждал, что некоторые данные потеряются.
да, оказывается есть такая тема. возможно это будет критично
XML Spreadsheet documents cannot store Visual Basic for Applications macros, auditing tracer arrows, chart and other graphic objects, custom views, drawing object layers, outlining, scenarios, shared workbook information and user-defined function categories.
Ovl>XML Spreadsheet documents cannot store Visual Basic for Applications macros, auditing tracer arrows, chart and other graphic objects, custom views, drawing object layers, outlining, scenarios, shared workbook information and user-defined function categories.
Всем спасибо! Не буду я так делать... если что сожрут.
Overview
MyXLS is a .NET 2.0 library that writes and reads native Excel files quickly and easily, including formatting and multiple sheets. Generate Excel files for ASP.NET sites or .NET applications. Doesn't require Excel on the server or any licensing. Compatible with Excelversions 97 and up. Features
Pure .NET code — no P/Invokes, Interop assemblies, or Excel COM automation behind the scenes.
No other dependencies — add and reference the MyXls dll in your project and go!
Fast! (we will be adding some performance metrics)
Lightweight! The dll is only ~100 KB
Free to use, no licensing restrictions.
Open Source Project
The files generated are 100% compatible with Excel versions 97 and up. Files are BIFF8, which is Excel 97-2003's native format, and fully forward compatible with Excel 2007.
Create any number of Worksheets
Name Worksheets
Write values to any cell on any Worksheet — values don't have to be in contiguous ranges
Supports a good portion of Excel's formatting capabilities (bold, underline, italic, rotation, etc)
Supports writing Metadata — values displayed in Excel's File->Properties dialog box