c#读取过来的excel路径不对

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#读取过来的excel路径不对相关的知识,希望对你有一定的参考价值。

代码是这样的,就是读取出来的路径一直是有个报错的C盘的路径,我把东西调到那里就执行成功了,其他路径下都不行
string connStr = "";
string fileType = System.IO.Path.GetExtension(filename);
if (string.IsNullOrEmpty(fileType)) return null;
if (fileType == ".xls")
connStr = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + filename + ";" + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\"";
else
connStr = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + filename + ";" + ";Extended Properties=\"Excel 12.0;HDR=YES;IMEX=1\"";
string sql_F = "Select * FROM [Sheet1$]";
OleDbConnection conn = null;
OleDbDataAdapter da = null;
System.Data.DataTable dtSheetName = null;
System.Data.DataTable dt = new System.Data.DataTable();
try

// 初始化连接,并打开
conn = new OleDbConnection(connStr);
conn.Open();
// 获取数据源的表定义元数据
string SheetName = "";
dtSheetName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] null, null, null, "TABLE" );
// 初始化适配器
da = new OleDbDataAdapter();
for (int i = 0; i < dtSheetName.Rows.Count; i++)

SheetName = (string)dtSheetName.Rows[i]["TABLE_NAME"];
if (SheetName.Contains("$") && !SheetName.Replace("'", "").EndsWith("$"))

continue;

da.SelectCommand = new OleDbCommand(String.Format(sql_F, SheetName), conn);
da.Fill(dt);


catch (Exception ex)


finally

// 关闭连接
if (conn.State == ConnectionState.Open)

conn.Close();
da.Dispose();
conn.Dispose();


return dt;

参考技术A 请问你的 filename 传的是什么? 如果给了一个相对路径要用 Server.MapPath(filename)来获取绝对路径的 参考技术B 路径某个地方写死了 参考技术C 这东西很简单,引用office的excel的dll
然后打开这个excel文件,就跟读取一个二维表一样容易。具体代码就不写了
百度一搜一大堆。
参考技术D 你用绝对路径或者知道fileupload试一下

C#里使用ExcelDataReader读取EXCEL文件的简单方法

C#里使用ExcelDataReader读取EXCEL文件的简单方法

读取EXCEL文件是比较常见的需求,所以在C#里也会经常遇到。
比如客户需要保存的条码数据,他们可以使用EXCEL来扫码进去,并且进行修改和核验,
然后软件就需要读取这些EXCEL文件,并且从这里得到所需要的条码。

要从EXCEL里读取数据,并不是简单打开文件读取就得到数据的,
因为EXCEL文件是一个复杂的格式,所以要读取这些文件的数据,需要比较复杂的代码。
如果要让我们重头去实现一轮,那是比较复杂的,也容易出错,所以需要利用别人已经实现的库。
比如下载下面这几个库:

这几个库,都需要小心地使用。

使用下面这段代码来打开文件夹:

        private void button1_Click(object sender, EventArgs e)
       
            //打开文件选择对话框。
            using (OpenFileDialog openFileDialog = new OpenFileDialog() Filter = "Excel 97-2003 Workbook|*.xls|Excel Workbook|*.xlsx" )
           
                if (openFileDialog.ShowDialog() == DialogResult.OK)
   

以上是关于c#读取过来的excel路径不对的主要内容,如果未能解决你的问题,请参考以下文章

C#对Excel的操作

C# 读取EXCEL

C# 读表方式读取Excel数据

为啥用Matlab读取Excel数据为空啊?

C#读取EXCEL中的信息,并保存到数据库

读取指定路径的Excel内容到DataTable中