【问题标题】:Reading more than 255 characters from excel从 excel 中读取超过 255 个字符
【发布时间】:2018-05-18 20:02:44
【问题描述】:

我正在尝试从 excel 中读取工作表数据(尝试了 oldedb 和 odbc),发现有 255 个字符的限制。 我尝试按照其他线程中的建议使用Range 对象

(SELECT * FROM [ref_MethodInput$A1:S362]) 

但仍然没有运气。那么除了使用互操作之外,还有其他方法可以克服这个问题吗?注册表编辑也不可取,因为这需要在所有客户端计算机上进行注册表编辑。

【问题讨论】:

    标签: c# excel


    【解决方案1】:

    既然问题出在 Jet Provider 上,何不试试 ODBC 连接下列出的 Microsoft Excel 驱动程序。

    Source

    【讨论】:

    • 我正在从我的 C# 应用程序中执行此操作。您能否提供一个链接/示例,说明我是如何做到这一点的。
    • 感谢您的链接。我从那里调整了连接字符串,但仍然失败。长字符串在 101 行 OleDbConnection excelcon = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filename + "; Extended Properties='Excel 12.0;HDR=YES;IMEX=1;MAXSCANROWS =200';");
    【解决方案2】:

    下面的代码对我有用。 从 excel (.xls & .xlsx) 文件导入数据(适用于超过 255 个字符的列值)。

    using Excel;
    
            try
            {
                FileStream stream = File.Open(strFilePath, FileMode.Open, FileAccess.Read);
                IExcelDataReader excelReader = null;
                if (extension.Trim() == ".xls")
                {
                    excelReader = ExcelReaderFactory.CreateBinaryReader(stream);
                }
                else if (extension.Trim() == ".xlsx")
                {
                    excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
                }
                excelReader.IsFirstRowAsColumnNames = true;
                DataSet result = excelReader.AsDataSet();
    
                excelReader.Close();
            }
            catch (Exception err)
            {
                mResult.Message = err.Message;
            }
    

    下载 nuget 包: 1)PCLStorage(版本:1.0.2) 2) ExcelDataReader-DevNet45(版本:1.0.0.2)

    Code reference

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-15
      • 1970-01-01
      • 2014-11-05
      • 1970-01-01
      • 1970-01-01
      • 2021-08-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多