1

我使用 c# 从 xls 电子表格中读取数据。它读起来是否正常,但由于某种原因,它缺少某些长数据单元格内容的结尾。

下面是我的一些代码

string excelConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=W:\translations-mk2.xls;Extended Properties=""Excel 8.0;HDR=YES;""";
using (System.Data.OleDb.OleDbConnection connection = new System.Data.OleDb.OleDbConnection(excelConnectionString))
{
    //List columns you need from the Excel file
    System.Data.OleDb.OleDbCommand command = new System.Data.OleDb.OleDbCommand("Select * FROM [phrases$]", connection);



    connection.Open();


    // Create DbDataReader to Data Worksheet
    using (System.Data.OleDb.OleDbDataReader dr = command.ExecuteReader())
    {
        if (dr.HasRows)
        {
            int x = 1;
            while (dr.Read())
            {
                //Response.Write(dr[1].ToString() + " : " + dr[6].ToString() + "<p>&nbsp;</p><p>&nbsp;</p>");
                string dbId = dr[0].ToString();
                string htmlControl = dr[1].ToString();
                string eng = dr[2].ToString();
                string german = dr[4].ToString();
                string greek = dr[6].ToString();
                if (dbId == "65")
                {
                    Response.Write("greek: " + dr[6].ToString());
                }

内容是希腊语,所以字符串中应该是什么

Καλωσορίσατε στον ιστότοπο της ADHD 变革联盟 (Συμμαχία για Αλλαγή στη ΔΕΠΥ)。Η εκστρατεία ADHD Alliance for Change (Συμμαχία για Αλλαγή στη ΔΕΠΥ) είναι ένα ευρωπαϊκό έργο που τελεί υπό την καθοδήγηση μιας Συντονιστικής Επιτροπής Ανεξάρτητων Ευρωπαίων Εμπειρογνωμόνων σε θέματα ΔΕΠΥ (Διαταραχή Ελλειμματικής Προσοχής και Υπερκινητικότητας), το οποίο υλοποιείται με την υποστήριξη ομάδων υπεράσπισης ασθενών και αναπτύσσεται και χρηματοδοτείται από τη φαρμακευτική εταιρεία 郡。

但是字符串中的内容是

Καλωσορίσατε στον ιστότοπο της ADHD 变革联盟 (Συμμαχία για Αλλαγή στη ΔΕΠΥ)。Η εκστρατεία ADHD Alliance for Change (Συμμαχία για Αλλαγή στη ΔΕΠΥ) είναι ένα ευρωπαϊκό έργο που τελεί υπό την καθοδήγηση μιας Συντονιστικής Επιτροπής Ανεξάρτητων Ευρ

4

2 回答 2

0

您是否尝试过使用 excel 数据阅读器? http://exceldatareader.codeplex.com/

于 2013-08-30T08:02:29.827 回答
0

您将需要更改注册表中 TypeGuessRows 的值。此值指定在确定每列的数据类型时扫描的行数。默认值为 8,前 8 行可能没有超过 255 个字符。您可以将该值更改为大于 8 的数字或指定零值,这将导致扫描所有行。请记住,使用零值可能会导致性能下降。

HKLM\Software\Microsoft\Jet\4.0\Engines\Excel\TypeGuessRows

于 2013-08-30T08:13:23.703 回答