সি # থেকে এক্সেল ফাইলগুলি পড়া


233

কোনও সি # প্রোগ্রাম থেকে সরাসরি এক্সেল ফাইল (.xls) পড়ার জন্য কি কোনও নিখরচায় বা ওপেন সোর্স লাইব্রেরি আছে?

এটি খুব অভিনব হওয়ার দরকার নেই, কেবল একটি কার্যপত্রক নির্বাচন করতে এবং স্ট্রিং হিসাবে ডেটা পড়তে। এখনও অবধি, আমি এক্সেলের এক্সপোর্টে ইউনিকোড পাঠ্য ফাংশন ব্যবহার করছি এবং ফলস্বরূপ (ট্যাব-বিস্মৃত) ফাইলটি পার্স করছি, তবে আমি ম্যানুয়াল পদক্ষেপটি মুছে ফেলতে চাই।

উত্তর:


153
var fileName = string.Format("{0}\\fileNameHere", Directory.GetCurrentDirectory());
var connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=Excel 8.0;", fileName);

var adapter = new OleDbDataAdapter("SELECT * FROM [workSheetNameHere$]", connectionString);
var ds = new DataSet();

adapter.Fill(ds, "anyNameHere");

DataTable data = ds.Tables["anyNameHere"];

আমি সাধারণত এটি ব্যবহার করি। এটি কিছুটা আলাদা কারণ কারণ আমি টেবিলগুলির সম্পাদনায় সাধারণত অ্যাসিউনামেবল () থাকি:

var data = ds.Tables["anyNameHere"].AsEnumerable();

যেহেতু ক্ষেত্রগুলি থেকে অনুসন্ধানগুলি তৈরি করতে এবং তৈরি করতে আমাকে লিনকিউ ব্যবহার করতে দেয়।

var query = data.Where(x => x.Field<string>("phoneNumber") != string.Empty).Select(x =>
                new MyContact
                    {
                        firstName= x.Field<string>("First Name"),
                        lastName = x.Field<string>("Last Name"),
                        phoneNumber =x.Field<string>("Phone Number"),
                    });

যদি মনে হয় এই পদ্ধতির মধ্যে নির্বাচনটি কলামটির ডেটা ধরণের অনুমান করার চেষ্টা করে এবং অনুমান করা ডেটা ধরণের উপর চাপ দেয়। উদাহরণস্বরূপ, যদি আপনার বেশিরভাগ দ্বিগুণ মান সহ একটি কলাম থাকে তবে এটি আপনাকে x.Feld <string> পাস করার পছন্দ করবে না, তবে এক্স.ফিল্ড <ডাবল> আশা করে। এটা কি সত্য?
কেভিন লে - খনলে

1
সবেমাত্র এটি এমএসডিএন-তে সন্ধান করেছে। দেখে মনে হচ্ছে <T> কেবলমাত্র কলামে একটি ধরণের বিষয়বস্তু কাস্ট করার চেষ্টা করার জন্য ব্যবহৃত হয়েছিল। এই উদাহরণে এবং কলামগুলিতে স্ট্রিংয়ে কেবলমাত্র তথ্য .ালাই। আপনি যদি ডাবল চান তবে আপনার ডাবল কল করতে হবে ars পার্স (এক্স। ফিল্ড <স্ট্রিং> ("খরচ")) বা এর মতো কিছু Fi
রবিন রবিনসন

লিনক ক্যোয়ারিতে একটি ডাবল যুক্ত করে? পার্স করা কি এটি অনেকটা ধীর করে দেয়?
বেনামে টাইপ

23
মনে রাখবেন যে আপনি যদি পড়ছেন তবে xlsxপরিবর্তে আপনার এই সংযোগের স্ট্রিংটি ব্যবহার করা দরকার:string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0}; Extended Properties=Excel 12.0;", fileName)
আন্দ্রে গ্র্যাচ

7
দুঃখজনকভাবে জেট.ওএলইডিবি ড্রাইভারটি 64-বিট সামঞ্জস্যপূর্ণ নয়; আপনাকে কোনও সিপিইউর চেয়ে x86 টার্গেটে স্যুইচ করতে হবে (যদি আপনি এখনও এই পদ্ধতিটি নিয়ে এগিয়ে যেতে চান)। বিকল্পভাবে -৪-বিট এসিই ড্রাইভারটি ইনস্টল করুন এবং এই ড্রাইভারটি ব্যবহারের জন্য সংযোগের স্ট্রিংটি পরিবর্তন করুন (অ্যান্ড্রেয়াস দ্বারা নির্দেশিত হিসাবে) - মাইক্রোসফট
ডানকান

83

এটি যদি এক্সেলের ফাইলে থাকা কেবলমাত্র সহজ ডেটা হয় তবে আপনি ADO.NET এর মাধ্যমে ডেটা পড়তে পারেন। এখানে তালিকাভুক্ত সংযোগের স্ট্রিংগুলি দেখুন:

http://www.connectionstrings.com/?carrier=excel2007 বা http://www.connectionstrings.com/?carrier=excel

-Ryan

আপডেট: তারপরে আপনি ঠিক এরকম কিছু মাধ্যমে কার্যপত্রকটি পড়তে পারেন select * from [Sheet1$]


1
এই পথটি এখন পর্যন্ত দ্রুততম।
স্টিঞ্জি জ্যাক

17
অবশ্যই এটি সত্য নয়, স্টিংজি। আপনাকে সমস্ত ডেটা সন্ধান করতে হবে এবং ক্রেপি ডিবি কোড লিখতে হবে (আপনার মডেলগুলির হাতে কারুকর্ম, বৈশিষ্ট্যগুলিতে মানচিত্রের কলাম, ইয়াদদা ইয়াদদা) da দ্রুততম উপায় হ'ল আপনার জন্য অন্য কিছু দুর্বল এসওবি এটি করতে দেয় । এজন্য লোকেরা নীচে থেকে সবকিছু লেখার পরিবর্তে ফ্রেমওয়ার্কগুলি ব্যবহার করে।

12
মূল্যহীন পদ্ধতি! পাঠ্য কলামগুলি 255 টি অক্ষরে ছেঁটে ফেলা হয়। সতর্ক থাকুন! দেখুন: স্ট্যাকওভারফ্লো.com / জিজ্ঞাসা / 1519288/… এসি ইঞ্জিন একই কাজ করে!
ট্রায়ঙ্কো

5
সচেতন হন যে এক্সেল থেকে ডেটা পড়তে ADO.NET ব্যবহার করার জন্য মাইক্রোসফ্ট অ্যাক্সেস বা মাইক্রোসফ্ট অ্যাক্সেস ডেটাবেস ইঞ্জিন পুনরায় বিতরণযোগ্য ইনস্টল করা দরকার।
zihotki

3
ড্রাইভারটি বেশ কয়েকটি প্রথম সারির উপর ভিত্তি করে কলামের ধরণগুলি অনুমান করবে। প্রথম সারিতে পূর্ণসংখ্যার মতো দেখতে যদি আপনার কোনও কলাম থাকে তবে আপনি যখন একটি অ-পূর্ণসংখ্যার (উদাহরণস্বরূপ একটি ফ্ল্যাট, একটি স্ট্রিং) আঘাত করেন তখন একটি ত্রুটির মুখোমুখি হতে পারেন
ব্রায়ান লো

27

ADO.NET পদ্ধতিটি দ্রুত এবং সহজ, তবে এটিতে কয়েকটি কিরিকস রয়েছে যা সম্পর্কে আপনার সচেতন হওয়া উচিত, বিশেষত ডেটাটাইপগুলি কীভাবে পরিচালিত হয় সে সম্পর্কে।

এই দুর্দান্ত নিবন্ধটি আপনাকে কিছু সাধারণ সমস্যাগুলি এড়াতে সহায়তা করবে: http://blog.lab49.com/archives/196


আপনি আমার প্রশ্নের উত্তর দিয়েছেন (উপরের মন্তব্যের আকারে)।
কেভিন লে - খনলে

22

এটি আমি এক্সেল 2003 এর জন্য ব্যবহার করেছি:

Dictionary<string, string> props = new Dictionary<string, string>();
props["Provider"] = "Microsoft.Jet.OLEDB.4.0";
props["Data Source"] = repFile;
props["Extended Properties"] = "Excel 8.0";

StringBuilder sb = new StringBuilder();
foreach (KeyValuePair<string, string> prop in props)
{
    sb.Append(prop.Key);
    sb.Append('=');
    sb.Append(prop.Value);
    sb.Append(';');
}
string properties = sb.ToString();

using (OleDbConnection conn = new OleDbConnection(properties))
{
    conn.Open();
    DataSet ds = new DataSet();
    string columns = String.Join(",", columnNames.ToArray());
    using (OleDbDataAdapter da = new OleDbDataAdapter(
        "SELECT " + columns + " FROM [" + worksheet + "$]", conn))
    {
        DataTable dt = new DataTable(tableName);
        da.Fill(dt);
        ds.Tables.Add(dt);
    }
}

2
ওয়ার্কশিটটি সংজ্ঞায়িত করা হয়নি ... সমস্ত কিছু পরিষ্কারভাবে সংজ্ঞায়িত করার পরে আমার কাছে কিছুটা অদ্ভুত লাগছে।
জেরেমি হলোভ্যাকস

21

এক্সেল ডেটা রিডার সম্পর্কে কীভাবে?

http://exceldatareader.codeplex.com/

আমি এটিকে ক্রোধে, উত্পাদনের পরিবেশে, বিভিন্ন এক্সেল ফাইল থেকে এসকিউএল সার্ভার কমপ্যাক্টে প্রচুর পরিমাণে ডেটা টানতে ব্যবহার করেছি। এটি খুব ভাল কাজ করে এবং এটি বরং শক্তিশালী।


2
আমি এক্সেল ডেটা রিডার দ্বিতীয় করব; এটি অবিশ্বাস্যভাবে কার্যকর এক্সেল ডেটা ড্রাইভড টেস্ট লাইব্রেরিতেও পরিচালিত করেছে, যা এক্সেল স্প্রেডশিটগুলি হাস্যকরভাবে সহজ ব্যবহার করে ডেটা-চালিত পরীক্ষাগুলি তৈরি করতে NUnit 2.5 এর টেস্ট কেসসোর্স বৈশিষ্ট্য ব্যবহার করে। কেবল সাবধান থাকুন যে রিশার্পার এখনও টেস্টক্যাসসোর্স সমর্থন করে না, তাই আপনাকে নুনিট রানার ব্যবহার করতে হবে।
ডেভিড কেভেনি

দুর্ভাগ্যক্রমে, এই লাইব্রেরিতে কিছু সমস্যা রয়েছে যা আমরা সবেমাত্র মুখোমুখি হয়েছি। প্রথমত আমাদের কিছু মুদ্রার ক্ষেত্রগুলি তারিখ হিসাবে প্রকাশিত হয়েছিল। দ্বিতীয়ত, ওয়ার্কবুকের কোনও খালি শিট থাকলে তা ক্রাশ করছে। সুতরাং, যদিও এটি সংহত করা খুব সহজ ছিল আমরা এখন এই লাইব্রেরিটি ব্যবহার চালিয়ে যাব কিনা তা পুনরায় মূল্যায়ন করছি। এটি সক্রিয়ভাবে বিকাশিত বলে মনে হচ্ছে না।
Ian1971

এটি এক্সএলএক্সএক্স ফাইলটিতে কিছু বিকল্প উপাদান উপস্থিতিও অনুমান করে যা অনুপস্থিত থাকলে ডেটা পড়তে ব্যর্থ হয়।
রিচিহ্যান্ডল

এসকিউএল সার্ভার রিপোর্টিং পরিষেবাদি থেকে আসা এক্সেল ফাইলগুলি নিয়ে আমাদের সমস্যা হচ্ছে। এগুলি কেবল কাজ করে না, যদি না আপনি এগুলি খুলেন এবং সেগুলি সংরক্ষণ করেন (এমনকি অশিক্ষিত)। @ রিচিহিন্দল: আপনি কোন optionচ্ছিক উপাদানগুলির বিষয়ে কথা বলছেন (আশা করি এটি আমার এসএসআরএস এক্সেল ফাইলগুলির সাথে আমার সহায়তা করতে পারে)?
পিটার

@ পিটার: আমি মনে করি এটি আমার জন্য সমস্যা সৃষ্টি করছিল এমন একটি অনুপস্থিত <dimension>উপাদান <worksheet>ছিল।
রিচিহিন্ডল

16

কয়েক বছর আগে .NET 1.1 ব্যবহার করে আমি সি # তে কিছু কোড লিখেছি। আপনার প্রয়োজনের ঠিক এটি কী হবে তা নিশ্চিত নন (এবং আমার সেরা কোড হতে পারে না :))।

using System;
using System.Data;
using System.Data.OleDb;

namespace ExportExcelToAccess
{
    /// <summary>
    /// Summary description for ExcelHelper.
    /// </summary>
    public sealed class ExcelHelper
    {
        private const string CONNECTION_STRING = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=<FILENAME>;Extended Properties=\"Excel 8.0;HDR=Yes;\";";

        public static DataTable GetDataTableFromExcelFile(string fullFileName, ref string sheetName)
        {
            OleDbConnection objConnection = new OleDbConnection();
            objConnection = new OleDbConnection(CONNECTION_STRING.Replace("<FILENAME>", fullFileName));
            DataSet dsImport = new DataSet();

            try
            {
                objConnection.Open();

                DataTable dtSchema = objConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

                if( (null == dtSchema) || ( dtSchema.Rows.Count <= 0 ) )
                {
                    //raise exception if needed
                }

                if( (null != sheetName) && (0 != sheetName.Length))
                {
                    if( !CheckIfSheetNameExists(sheetName, dtSchema) )
                    {
                        //raise exception if needed
                    }
                }
                else
                {
                    //Reading the first sheet name from the Excel file.
                    sheetName = dtSchema.Rows[0]["TABLE_NAME"].ToString();
                }

                new OleDbDataAdapter("SELECT * FROM [" + sheetName + "]", objConnection ).Fill(dsImport);
            }
            catch (Exception)
            {
                //raise exception if needed
            }
            finally
            {
                // Clean up.
                if(objConnection != null)
                {
                    objConnection.Close();
                    objConnection.Dispose();
                }
            }


            return dsImport.Tables[0];
            #region Commented code for importing data from CSV file.
            //              string strConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source=" + System.IO.Path.GetDirectoryName(fullFileName) +";" +"Extended Properties=\"Text;HDR=YES;FMT=Delimited\"";
            //
            //              System.Data.OleDb.OleDbConnection conText = new System.Data.OleDb.OleDbConnection(strConnectionString);
            //              new System.Data.OleDb.OleDbDataAdapter("SELECT * FROM " + System.IO.Path.GetFileName(fullFileName).Replace(".", "#"), conText).Fill(dsImport);
            //              return dsImport.Tables[0];

            #endregion
        }

        /// <summary>
        /// This method checks if the user entered sheetName exists in the Schema Table
        /// </summary>
        /// <param name="sheetName">Sheet name to be verified</param>
        /// <param name="dtSchema">schema table </param>
        private static bool CheckIfSheetNameExists(string sheetName, DataTable dtSchema)
        {
            foreach(DataRow dataRow in dtSchema.Rows)
            {
                if( sheetName == dataRow["TABLE_NAME"].ToString() )
                {
                    return true;
                }   
            }
            return false;
        }
    }
}

আরও চেরিয়ান একমত হতে পারে না। এই কোডটি বহু বছরের পুরনো ... আমি এমনকি রিশার্পারে দক্ষ হয়ে ওঠার আগেই :)
হিটেক

2
কোডটি কুৎসিত, তবে এটি শীটের নামগুলি কীভাবে পাওয়া যায় তা দুর্দান্ত দেখায়!
স্যাম


12

আপনি ওপেনএক্সএমএল ফর্ম্যাটগুলির জন্য উদাহরণস্বরূপ, পুরানো ফাইল ফর্ম্যাটগুলি বোঝায় .xls জিজ্ঞাসা করার সময় (যেমন xlsx) আমি ওপেনএক্সএমএল এসডিকে সুপারিশ করছি ( http://msdn.microsoft.com/en-us/library/bb448854.aspx )


8

আমি কিছুক্ষণ আগে সি # তে এক্সেল ফাইলগুলি থেকে প্রচুর পঠন করেছি এবং আমরা দুটি পদ্ধতির ব্যবহার করেছি:

  • সিওএম এপিআই, যেখানে আপনি এক্সেলের বস্তুগুলিতে সরাসরি অ্যাক্সেস করেন এবং সেগুলি পদ্ধতি এবং বৈশিষ্ট্যগুলির মাধ্যমে পরিচালনা করেন
  • ওডিবিসি ড্রাইভার যা ডাটাবেসের মতো এক্সেল ব্যবহার করতে দেয়।

পরবর্তী পদ্ধতিটি আরও দ্রুত ছিল : 20 কলাম এবং 200 লাইন সহ একটি বড় টেবিল পড়তে COM এর মাধ্যমে 30 সেকেন্ড এবং ODBC এর মাধ্যমে অর্ধেক সেকেন্ড সময় লাগবে। সুতরাং আমি আপনাকে ডাটাবেস পদ্ধতির সুপারিশ করব যদি আপনার প্রয়োজনীয় সমস্ত তথ্য হয়।

চিয়ার্স,

কার্ল


6

এক্সেলম্যাপার একটি ওপেন সোর্স সরঞ্জাম ( http://code.google.com/p/excelmapper/ ) যা এক্সেল ওয়ার্কশিটগুলিকে স্ট্রংলি টাইপড অবজেক্টস হিসাবে পড়তে ব্যবহার করা যেতে পারে। এটি এক্সএলএস এবং এক্সএলএক্সএক্স উভয় ফর্ম্যাটকে সমর্থন করে।


6

আমি নেটগুলির সাথে এক্সএলএস / এক্সএলএক্সএক্স ফাইল পড়ার একটি সহজ পদ্ধতিটি দেখাতে চাই। আমি আশা করি যে নিম্নলিখিতগুলি আপনার জন্য সহায়ক হবে।

 প্রাইভেট ডেটা টেবিল রিডএক্সেল টু টেবিল (স্ট্রিং পাথ)    
 {

     // সংযোগ স্ট্রিং

     স্ট্রিং সংশ্লেষ = "সরবরাহকারী = মাইক্রোসফট.এসিই.ওএলডিবি .১২.০; ডেটা উত্স =" + পাথ + "; বর্ধিত বৈশিষ্ট্য = 'এক্সেল ৮.০; এইচডিআর = কোন; আইএমএক্স = 1';";  
     // একই নাম 
     // স্ট্রিং সংযুক্তকরণ = সরবরাহকারী = মাইক্রোসফ্ট.জেট.ওএলডিবি.4.0; ডেটা উত্স = "+ পাথ + //"; বর্ধিত বৈশিষ্ট্য = 'এক্সেল 8.0; এইচডিআর = না; আইএমএক্স = 1'; "; 

     (ওলেডিবি সংযোগ সংযোগ = নতুন ওলেডিবি সংযোগ (সংযুক্তকরণ)) ব্যবহার করে
     {
        conn.Open ();
        // সমস্ত শীটের নাম পান
        ডেটা টেবিল শিটসনাম = সংযোগ.গেটলডিবিসিচেমিটেবল (ওলেডিবিস্কেমাগুইড. টেবিল, নতুন অবজেক্ট [] ull নাল, নাল, নাল, "টেবিল"});  

        // প্রথম শীটের নাম পান
        স্ট্রিং ফার্স্টশিটনাম = শীটনাম। রোস [0] [2]। টুস্ট্রিং (); 

        // ক্যারি স্ট্রিং 
        স্ট্রিং এসকিউএল = স্ট্রিং। ফরম্যাট ("নির্বাচন করুন * থেকে [{0}]", ফার্স্টশিট নাম); 
        OleDbDataAdapter ada = new OleDbDataAdapter (sql, connstring);
        ডেটাসেট সেট = নতুন ডেটাসেট ();
        ada.Fill (সেট);
        রিটার্ন সেট। টেবিল [0];   
   }
 }

কোড নিবন্ধ থেকে: http://www.c-sharpcorner.com/uploadfile/d2dcfc/read-excel-file-with-net/ । আপনি এটি থেকে আরও বিশদ পেতে পারেন।


2
এটি সহায়ক ছিল , বিশেষ করে শিটের নামগুলি পড়ার অংশটি।
মার্টিনস্টোকেলি

4

নিখরচায় নয়, তবে সর্বশেষতম অফিসের সাথে খুব সুন্দর অটোমেশন রয়েছে et নেট এপিআই। (একটি দীর্ঘকাল ধরে একটি এপিআই ছিল তবে এটি কদর্য COM ছিল) অফিস অ্যাপ্লিকেশনটি একটি গোপন ব্যাকগ্রাউন্ড প্রক্রিয়া থাকা অবস্থায় আপনি কোডে যা যা চান / প্রয়োজন সব করতে পারেন।


3
@ বেনামে-টাইপ আমি প্রশ্নটি পড়েছি এবং একটি কাঙ্ক্ষিত ওএসএস বাস্তবায়নের জন্য একটি বিকল্প বিকল্প দিচ্ছি ... কারণ, আমি নিশ্চিত ছিলাম যে কিছুই পাওয়া যায় নি। এবং, গৃহীত উত্তরের দ্বারা বিচার করে, অফিস ইনস্টল থাকা কোনও সমস্যা নয়।
xanadont

3

আমি এখানে অফ-বেস থাকলে আমাকে ক্ষমা করুন, তবে অফিস পিআইএ এর জন্য এটি কি নয় ?


5
হ্যাঁ, তবে এর মধ্যে একটি এক্সেল তৈরির অন্তর্ভুক্ত রয়েছে lic অ্যাপ্লিকেশন উদাহরণ, এক্সএলএস ফাইল লোড করা ইত্যাদি the অন্যান্য উত্তরে।
অ্যাডাম রাল্ফ

অফিস পিআইএকে বেসলাইন হিসাবে ব্যবহার করে খুব ধীর গতিতে, সমস্ত কিছু দ্রুত - এমনকি ভ্যালু 2 সম্পত্তি থেকে পাস করা কোনও অবজেক্ট অ্যারে ব্যবহার করে। যা এখনও পিআইএ ব্যবহার করছে।
বেনামে টাইপ

3

ইদানীং লিনকিউতে আরও ভাল হওয়ার জন্য .... আমি এক্সএমএল স্প্রেডশিট হিসাবে ফাইলটি সংরক্ষণ করতে এক্সেলের অটোমেশন এপিআই ব্যবহার করেছি এবং তারপরে লিনকু থেকে এক্সএমএল ব্যবহার করে সেই ফাইলটি প্রক্রিয়া করি।


আমি সন্দেহ করতে পারি আপনি এটি এক্সেল থেকে রক্ষা করতে পারবেন তবে সংকলকযুক্ত মানুষ থেকে নয় ... কোনও কিছুর মতো ... এটি কেবল বাইটস।
কেনি

@gsvirdi, এক্সেল ফাইল সুরক্ষার বিষয়ে একটি পৃথক প্রশ্ন পোস্ট করুন, এই প্রশ্নটি কার্য সম্পাদন করছে।
বেনামি টাইপ

3

.NET এর জন্য স্প্রেডশিটগিয়ার .NET এর জন্য একটি এক্সেল সামঞ্জস্যপূর্ণ স্প্রেডশিট উপাদান। আমাদের গ্রাহকরা আমাদের পণ্য পৃষ্ঠার ডানদিকে কর্মক্ষমতা সম্পর্কে যা বলে তা দেখতে পারেন । আপনি এটি নিখরচায়, সম্পূর্ণ-কার্যকরী মূল্যায়নের মাধ্যমে নিজে চেষ্টা করতে পারেন ।


3

স্মার্টএক্সএলএস হ'ল একটি এক্সেল স্প্রেডশিট উপাদান যা এক্সেল চার্ট, সূত্র ইঞ্জিনগুলির বেশিরভাগ বৈশিষ্ট্য সমর্থন করে এবং এক্সেল ২০০7 ওপেনএক্সএমএল ফর্ম্যাটটি পড়তে / লিখতে পারে।


3

.NET উপাদান এক্সেল রিডার। নেট আপনার প্রয়োজন মেটাতে পারে। এক্সএলএসএক্স এবং এক্সএলএস ফাইলগুলি পড়ার পক্ষে এটি ভাল ধারণা। সুতরাং এটি থেকে চেষ্টা করুন:

http://www.devtriogroup.com/ExcelReader


2

আমি ফাইলহেল্পার্স লাইব্রেরিটি সুপারিশ করি যা এক্সেল, নির্ধারিত দৈর্ঘ্য বা ফাইল, স্ট্রিং বা স্ট্রিম + আরও কিছুতে ডিলিমিটেড রেকর্ড থেকে ডেটা আমদানি / রফতানি করার জন্য নেট নেট লাইব্রেরি is

এক্সেল ডেটা লিংক ডকুমেন্টেশন বিভাগ http://filehelpers.sourceforge.net/example_exceldatalink.html


1
আমি আপনাকে হতাশ করব না, তবে আমি সম্প্রতি ফাইলহেল্পার্স ব্যবহার শুরু করেছি এবং কীভাবে খারাপ লাগছে তা দেখে আমি হতবাক হয়ে গিয়েছিলাম। উদাহরণস্বরূপ, কোনও সিএসভিতে কলামগুলি মানচিত্রের একমাত্র উপায় ... একটি মডেলের ক্ষমাপ্রার্থী, ফিল্ডস, কলামগুলির ক্রমে ক্ষেত্রগুলি তৈরি করা । আমি আপনার সম্পর্কে জানি না, তবে আমার f8king কাঠামোর সর্বাধিক কেন্দ্রীয় নকশা বিবেচনার জন্য আমি সংকলকটির এক গলির উপর নির্ভর করব না।

2

আপনি এই ওপেন সোর্স সমাধানটি ব্যবহার করে চেষ্টা করতে পারেন যা এক্সেলের সাথে আরও অনেক ক্লিনার তৈরি করে।

http://excelwrapperdotnet.codeplex.com/


2

স্প্রেডশিটগিয়ার দুর্দান্ত। হ্যাঁ এটি ব্যয়, তবে এই অন্যান্য সমাধানগুলির সাথে দ্বিধাদানের তুলনায় এটি ব্যয় মূল্য। এটি দ্রুত, নির্ভরযোগ্য, খুব বিস্তৃত এবং আমি এই পণ্যটি আমার দেড় বছরেরও বেশি সময় ধরে আমার ফুলটাইম সফ্টওয়্যার কাজের জন্য ব্যবহার করার পরে বলতে পারি, তাদের গ্রাহক সমর্থন দুর্দান্ত!


এক্সেল থেকে পড়ার এবং লেখার অনেক সহজ এবং কার্যকর উপায় (নিখরচায়) থাকাকালীন প্রমাণ করা শক্ত।
বেনামে টাইপ

2

যে সমাধানটি আমরা ব্যবহার করেছিলাম, সেগুলির জন্য প্রয়োজনীয়:

  • এক্সেল উত্পাদিত ফাইলগুলি পড়ার / লেখার অনুমতি দিন
  • পারফরম্যান্সে দ্রুত থাকুন (সিওএম ব্যবহার করার মতো নয়)
  • এমএস অফিস ইন্ডিপেন্ডেন্ট থাকুন (এমএস অফিস ইনস্টল না থাকা ক্লায়েন্ট ব্যতীত ব্যবহারের যোগ্য হওয়া দরকার)
  • হতে ফ্রি বা ওপেন সোর্স (কিন্তু সক্রিয়ভাবে বিকশিত)

বেশ কয়েকটি পছন্দ আছে, তবে আমরা এনপোই (জাভার দীর্ঘকালীন পোই ওপেন সোর্স প্রকল্পের নেট নেট বন্দর) খুঁজে পেয়েছি সেরা: http://npoi.codeplex.com/

এটি .doc এবং .ppt ফাইল ফর্ম্যাটগুলির সাথে কাজ করার অনুমতি দেয়


2

যদি এটি কেবল ট্যাবুলার ডেটা হয়। আমি মার্কস মেলির দ্বারা ফাইল ডেটা হেল্পারদের সুপারিশ করব যা এখানে ডাউনলোড করা যায়



1

আপনি এমন একটি এক্সেল স্প্রেডশিট লিখতে পারেন যা প্রদত্ত এক্সেল স্প্রেডশিটটি লোড করে এবং সিএসভি হিসাবে সংরক্ষণ করে (ম্যানুয়ালি না করে বরং)।

তাহলে আপনি সি # থেকে এটি স্বয়ংক্রিয় করতে পারবেন।

এবং একবার সিএসভিতে আসার পরে, সি # প্রোগ্রামটি এটি ছাঁটাই করতে পারে।

(এছাড়াও, যদি কেউ আপনাকে এক্সেলে প্রোগ্রাম করতে বলে, তবে আপনি কীভাবে জানেন না তা ভান করা ভাল)

(সম্পাদনা: আহ হ্যাঁ, রব এবং রায়ান উভয়ই ঠিক আছে)


1

আমি জানি যে লোকেরা এই উদ্দেশ্যে একটি এক্সেল "এক্সটেনশান" তৈরি করে চলেছে।
আপনি এক্সলে একটি বাটন তৈরি করেন যা "প্রোগ্রাম এক্সে এক্সপোর্ট করুন" বলে এবং তারপরে প্রোগ্রামটি পড়তে পারে এমন ফর্ম্যাটে ডেটা রফতানি এবং প্রেরণ করে।

http://msdn.microsoft.com/en-us/library/ms186213.aspx শুরু করার জন্য ভাল জায়গা হওয়া উচিত।

শুভকামনা


1

সবেমাত্র একটি দ্রুত ডেমো প্রকল্প করেছিলেন যার জন্য কয়েকটি এক্সেল ফাইল পরিচালনা করা দরকার। জেমবক্স সফ্টওয়্যার থেকে .NET উপাদানটি আমার প্রয়োজনের জন্য পর্যাপ্ত ছিল। এটির কয়েকটি সীমাবদ্ধতার সাথে একটি মুক্ত সংস্করণ রয়েছে।

http://www.gemboxsoftware.com/GBSpreadsheet.htm


এফওয়াইআই: আমি এটি চেষ্টা করেছিলাম এবং এটি কোনও এনক্রিপ্ট করা ফাইলটি পড়তে পারা আমার প্রয়োজনীয়তা পূরণ করে নি।
চাদ

1

এক্সেল প্যাকেজ এক্সেল 2007 ফাইলগুলি পড়ার / লেখার জন্য একটি ওপেন সোর্স (জিপিএল) উপাদান। আমি এটি একটি ছোট প্রকল্পে ব্যবহার করেছি এবং এপিআই সোজা is এক্সএলএসএক্সের সাথে নয়, কেবল এক্সএলএসএক্স (এক্সেল 200 ও) নিয়ে কাজ করে।

উত্স কোডটি সু-সংগঠিত এবং কাছাকাছি আসা সহজ বলে মনে হয় (যদি আপনার কার্যকারিতা প্রসারিত করতে বা আমার মতো ছোটখাটো সমস্যা সমাধান করতে হয়)।

প্রথমে, আমি ADO.Net (এক্সেল সংযোগ স্ট্রিং) পদ্ধতির চেষ্টা করেছিলাম, তবে এটি ভরাট হ্যাকগুলির সাথে পরিপূর্ণ ছিল - উদাহরণস্বরূপ যদি দ্বিতীয় সারিতে একটি নম্বর থাকে তবে এটি নীচের কলামের সমস্ত ক্ষেত্রের জন্য ints ফিরিয়ে দেবে এবং নিঃশব্দে কোনও ডেটা ফেলে দেবে যে ফিট করে না।


1

আমরা ক্লোজডএক্সএমএলকে বরং বড় সিস্টেমে ব্যবহার করি

  • বিনামূল্যে
  • ইনস্টল করা সহজ
  • সোজা ফরোয়ার্ড কোডিং
  • খুব প্রতিক্রিয়াশীল সমর্থন
  • বিকাশকারী দল চূড়ান্তভাবে নতুন পরামর্শের জন্য উন্মুক্ত। প্রায়শই নতুন বৈশিষ্ট্য এবং বাগ ফিক্স একই সপ্তাহের মধ্যে প্রয়োগ করা হয়

1

Take.ioস্প্রেডশিট এই কাজটি আপনার জন্য করবে, এবং কোনও মূল্য ছাড় ছাড়াই। এই একবার দেখুন ।


এটি সত্যিই দুর্দান্ত একটি ছোট গ্রন্থাগার। এটি সমস্ত কিছুকে কেবলমাত্র তালিকার তালিকাগুলিতে রূপান্তরিত করে, যা আমার যে ধরণের কাজের জন্য এটির প্রয়োজন ছিল তার জন্য ঠিক is
ড্রুমেট

0

আমি শুধু ব্যবহার করা ExcelLibrary একটি ডেটাসেটের মধ্যে একটি .xls স্প্রেডশীট লোড করা হয়নি। আমার জন্য দুর্দান্ত কাজ করেছেন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.