我的excel文件为text类型,用右键记事本打开为text类型,可以看到完整数据,所有这种文件用OleDbConnection对象打不开,所有导入不了数据库,导入会抛出,文件不是预期类型错误
一个标准的excel文件用右键打开应该是乱码的
我知道一种方式就是另存为这个文件,将其转换为标准excel文件
但是软件给用户不可能每次都叫用户转换一次吧,那还不得给骂死
我现在想不用手动转换就能导入
我知道一个方式可以链接,就是用文件流
但是这个流读取出来的数据是所有数据的字符串
要怎么将其每行每列填充给dataset不知道怎么处理 有知道这个问题怎么处理的给细心说说
万分感谢
excel有个通用格式就是csv
总之后缀也是.xls
看上去就是一个excel文件
如果是csv格式怎么转
sr = new StreamReader(TXTPath, System.Text.Encoding.GetEncoding("GB2312"));
if (sr.EndOfStream)
{
return;
}
while (!sr.EndOfStream)
{
//将上传文件数据插入到零时表中
pLineContent = sr.ReadLine(); pLineContent.Substring的方法去分出来每个字段应该就可以了!
如果是CSV文件的话,直接以“,”分割好了,SPILIT 就可以了!
{
object missing = System.Reflection.Missing.Value;
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
excel.Visible = false;
Microsoft.Office.Interop.Excel.Workbooks oBooks = excel.Workbooks;
oBooks.Open(filename, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing);
Microsoft.Office.Interop.Excel.Workbook oBook = excel.ActiveWorkbook;
string newfilename = filename.Substring(0, filename.LastIndexOf('.')) + "-B.xls";
oBook.SaveAs(newfilename, XlFileFormat.xlExcel9795, missing, missing, missing, missing, XlSaveAsAccessMode.xlNoChange, missing, missing, missing, missing, missing);
excel.DisplayAlerts = false;
oBook.Close(false, missing, false);
System.Runtime.InteropServices.Marshal.ReleaseComObject(oBook);
oBook = null; System.Runtime.InteropServices.Marshal.ReleaseComObject(oBooks);
oBooks = null; excel.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);
excel = null;
System.GC.Collect();
return newfilename;
}