سؤال

لدي أداة للحزب الثالث التي تنشئ جدول بيانات XML (* .xls). لدي برنامج آخر يقرأ هذا النيت ويعالجه. محتوى جدول بيانات XML الذي تم إنشاؤه هو جدول مع 5 أعمدة ويتم تشغيل برنامجي في تحديد استعلامات عليها. أنا مواجهة مشكلة أثناء فتح اتصال إلى جدول البيانات الذي تم إنشاؤه. تقول "{" الجدول الخارجي ليس في التنسيق المتوقع. "}". My Connectin String هو "مزود = Microsoft.jet.oledb.4.0؛ مصدر البيانات =" + Excelfilename + "؛ خصائص موسعة = " Excel 8.0؛ HDR = نعم؛ "؛ هل أحتاج إلى تغيير أي شيء لهذه السلسلة؟ حاولت استخدام DataSet و Calling DataSet.ReadXML (ExcelFilename)؛ لكن DataSet لا يحتوي على طاولتي. أي مدخلات حول كيفية قراءة جدول بيانات XML؟

شكرا لوقتك، CS

هل كانت مفيدة؟

المحلول

يبدو أن سلسلة الاتصال الخاصة بك محددة لملفات التنسيق الثنائي الأقدم. تريد سلسلة اتصال مختلفة ل XML. إذا كنت تتحدث عن ملفات Excel 2007 XML الجديدة، فأنت بحاجة إلى هذا سلسلة الاتصال:

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myExcel2007file.xlsx;Extended Properties="Excel 12.0 Xml;HDR=YES";

إذا كنت تتحدث عن تنسيق XML الأقدم الذي جاء في Excel 2003، فأنا لست متأكدا من وجود سلسلة اتصال. في هذه الحالة، تتمثل أفضل رهان في فتحه في Excel ثم احفظ كملف XLS، واستخدم سلسلة الاتصال التي كنت تستخدمها في الأصل.

على فكرة، connectionstrings.com. هو مكان رائع للعثور على أي سلسلة اتصال قديمة قد تحتاج إلى الوصول إلى جميع أنواع البيانات المختلفة.

لاحظ أيضا، كما لاحظ البعض الآخر، أنه إذا كان ملف XML، فلا ينبغي أن يكون لديك ملحق ملف XLS، يجب أن يكون إما .xml أو .xlsx.

نصائح أخرى

               Excel.Workbook wb1;

            Excel.Application wb2 = new Excel.Application();

            wb2.DisplayAlerts = false;
                           wb1 = (Excel.Workbook)wb2.Workbooks._Open(filename);

            if (wb1.FileFormat == Excel.XlFileFormat.xlXMLSpreadsheet)
            {
                                    wb1.SaveAs(filename, Excel.XlFileFormat.xlExcel12, Type.Missing, Type.Missing,
                        false, false, Excel.XlSaveAsAccessMode.xlNoChange,
                       Excel.XlSaveConflictResolution.xlOtherSessionChanges, false);
            }
            else
            {
                wb2.Workbooks.Close();

            }

يمكنك تحويل جدول بيانات Excel إلى تنسيق عام 2007 ثم استخدم LinQ لاستعلام الأوراق باستخدام أي مزود مفتوح المصدر أو OLEDB.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top