我使用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> </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变革联盟(ΣυμμαχίαγιαΑλλαγήστηΔΕΠΥ)。 Ηεκστρατεία多动症变革联盟(ΣυμμαχίαγιαΑλλαγήστηΔΕΠΥ)είναιέναευρωπαϊκόέργοπουτελείυπότηνκαθοδήγησημιαςΣυντονιστικήςΕπιτροπήςΑνεξάρτητωνΕυρωπαίωνΕμπειρογνωμόνωνσεθέματαΔΕΠΥ(ΔιαταραχήΕλλειμματικήςΠροσοχήςκαιΥπερκινητικότητας),τοοποίουλοποιείταιμετηνυποστήριξηομάδωνυπεράσπισηςασθενώνκαιαναπτύσσεται καιχρηματοδοτείταιαπότηφαρμακευτικήεταιρείαShire。但字符串中的内容是
更多ADHD变革联盟(ΣυμμαχίαγιαΑλλαγήστηΔΕΠΥ)。 ΗεκστρατείαADHD变革联盟(ΣυμμαχίαγιαΑλλαγήστηΔΕΠΥ)είναιέναευρωπαϊκόέργοπουτελείυπότηνκαθοδήγησημιαςΣυντονιστικήςΕπιτροπήςΑνεξάρτητωνΕυρ答案 0 :(得分:0)
您是否尝试过使用Excel数据阅读器? http://exceldatareader.codeplex.com/
答案 1 :(得分:0)
您需要在注册表中更改TypeGuessRows的值。此值指定在确定每列的数据类型时扫描的一个或多个行。默认值为8,前八行中没有一行包含超过255个字符。您可以将值更改为大于8的数字或指定值为零,这将导致扫描所有行。请记住,使用零值可能会影响性能。
HKLM \ SOFTWARE \微软\喷气\ 4.0 \发动机\ EXCEL \ TypeGuessRows