2
두 프로그램은 서로 관련이 없지만 Excel 파일에서 행을 읽는 방법은 동일합니다.읽기를 시도하는 두 프로그램이 하나의 Excel에서 성공 하나의 코드에서 오류가 발생했습니다.
프로그램 1
public DataTable GetExcelInfo(string filepath)
{
DataTable datatab = new DataTable();
try
{
string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filepath + ";Excel 8.0;IMEX=1;HDR=NO;TypeGuessRows=1;ImportMixedTypes=Text\\";
using (OleDbConnection conn = new OleDbConnection(connectionString))
{
conn.Open();
OleDbCommand cmd = new OleDbCommand("SELECT Format([F1], \"#\"), Format([F2], \"#\"), Format([F3], \"#\") FROM [Sheet1$]", conn);
OleDbDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
string[] values = new string[3];
values[0] = reader.GetString(0);
values[1] = reader.GetString(1);
values[2] = reader.GetString(2);
DataRow dr = datatab.NewRow();
dr.ItemArray = values;
datatab.Rows.InsertAt(dr, i);
i++;
}
}
}
}
프로그램이
private static DataTable GetInvoiceItems(string filepath)
{
DataTable dt = new DataTable();
string excelConString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filepath + ";Excel=8.0;IMEX=1;HDR=NO;TypeGuessRows=1;ImportMixedTypes=Text\\";
using (OleDbConnection conn = new OleDbConnection(excelConString))
{
OleDbDataAdapter ada = new OleDbDataAdapter("SELECT [F1], [F2], [F3], [F4], [F5] FROM [Sheet1$]", conn);
conn.Open();
ada.Fill(dt);
}
return dt;
}
이제 이상한 점은 두 번째 프로그램이 더 설치할 수 없다라는 오류를 느끼는 동안 첫 번째 프로그램은 완벽하게 동일한 PC에서 실행되는 작품입니다 PC에 ISAM. 어떤 제안?
bin 디렉토리에 DLL이 있습니까? Msexcl ##. dll, 또는 Mspdbe ##. dll과 같은 M으로 시작하는 이름이있을 수 있습니다. 하나가 있고 다른 하나는 그렇지 않으면 복사를 시도합니다. – Dispersia