C# 使用c读取xls仅获取部分数据
Im使用c从xls电子表格中读取数据。如果可以的话,它会读取,但由于某些原因,它会在一些长数据单元中丢失内容的结尾 下面是我的一些代码C# 使用c读取xls仅获取部分数据,c#,asp.net,C#,Asp.net,Im使用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.OleDbConne
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> </p><p> </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变革联盟。ε9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲πιτροπήπήπήεξάρτηττωνγρίπίωίρογήωσεθέμέτΔΕΠΥ Διαταραχή Ελλειμματικής Προσοχής και Υπερκινητικότητας,本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本κεντικήεταρεα
但是字符串中的内容是
αλωσορ∑ατεστονσττττττττττ∑μμμαχίαγιαλλαγήστηΔΕ∏μADHD变革联盟。ε9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲母亲πιτροπήΑνεξρτηττωνΓρ您尝试过使用excel数据读取器吗?
您需要更改注册表中TypeGuessRows的值。此值指定在确定每列的数据类型时扫描的行数。默认值为8,前8行中可能没有一行包含超过255个字符。您可以将该值更改为大于8的数字,或指定值为零,这将导致扫描所有行。请记住,使用零值可能会导致性能下降
HKLM\Software\Microsoft\Jet\4.0\Engines\Excel\TypeGuessRows那么问题是什么?我如何阻止它截取内容的结尾?您可以在问题中添加一个示例:它应该是什么与代码读取后的样子相比?您是否能够将文件作为xlsx并使用OpenXML API读取该文件?因为用c写的,会不会不一样?听起来不错,但是,我找不到您引用的注册表项?您尝试过在Regedit中搜索吗?对于win7 64b,您可以在HKLM\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\Excel中找到它,请阅读