OleDb 방식으로 excel 읽기, 현실과 맞지 않음
3257 단어 Excel
문제 발생: 데이터 열 형식이 일치하지 않습니다. 예를 들어 한 열 앞의 몇 개는 모두 숫자 형식이고, 중간에 몇 개의 문자 형식으로 저장된 숫자를 삽입합니다.이러한 데이터를 DbNull로 직접 읽기
어떻게 해결할지..검색해봐...이게 oledb 버그인 걸 알고...IMEX =1 로 설정하든 =2 로 설정하든 간에 그는 이 데이터를 읽지 못할 것이다
최종 솔루션...인터넷을 사용하면 먼저 csv로 변환...그리고 텍스트 줄을 읽고 일부 코드는 네트워크에서 복사합니다
string TempPath = AppDomain.CurrentDomain.BaseDirectory + "csvTemp\\";
if (Directory.Exists(TempPath))
{
Directory.Delete(TempPath, true);
}
Directory.CreateDirectory(TempPath);
string filename = TempPath + Guid.NewGuid() + ".csv";
Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.ApplicationClass();
try
{
app.Visible = false;
Workbook wBook = app.Workbooks.Add(true);
app.ScreenUpdating = false;
Workbook wb = app.Workbooks.Open(filepath, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
wb.SaveAs(filename, Microsoft.Office.Interop.Excel.XlFileFormat.xlCSV, Type.Missing, Type.Missing,
Type.Missing,
Type.Missing,
Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Type.Missing,
Type.Missing, Type.Missing, Type.Missing,
Type.Missing);
wb.Close(false, Type.Missing, false);
app.Workbooks.Close();
app.Quit();
app = null;
GC.Collect();
String line;
String[] split = null;
DataTable table = new DataTable(TableName);
DataRow row = null;
StreamReader sr = new StreamReader(filename, System.Text.Encoding.Default);
//
line = sr.ReadLine();
split = line.Split(',');
foreach (String colname in split)
{
table.Columns.Add(colname, System.Type.GetType("System.String"));
}
//
int j = 0;
while ((line = sr.ReadLine()) != null)
{
j = 0;
row = table.NewRow();
split = line.Split(',');
foreach (String colname in split)
{
row[j] = colname;
j++;
}
table.Rows.Add(row);
}
sr.Close();
//
dgclass.DataSource = table;
importNow.Enabled = true;
}
catch (Exception ex)
{
log.Error(ex, ex);
MessageBox.Show(this, ex.Message + "\r
excel ");
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Excel Grep toolExcel Grep tool ■히나가타 ■ 시트 구성 ExcelGrep.cls...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.