.net读取excel问题

Nimaya_fengtui 2010-12-28 05:06:00
怎样读取excel中34到44行的数据,但是excel中又没有唯一标识,该怎么写sql语句。
...全文
309 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
又到吃饭时间 2012-11-22
  • 打赏
  • 举报
回复
<a href="http://www.baidu.com">。。。</a>
加油馒头 2010-12-29
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 hj_daxian 的回复:]
引用 8 楼 net_lover 的回复:

string strCom = " SELECT * FROM [Shert1$A33:H44]";这种格式

拜膜
程序猿GG 2010-12-29
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 net_lover 的回复:]
string strCom = " SELECT * FROM [Shert1$A33:H44]";这种格式
[/Quote]

试过, 好像不行呀.

------------------
至少一个参数没有被指定值。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.OleDb.OleDbException: 至少一个参数没有被指定值。

源错误:


行 23: OleDbDataAdapter da = new OleDbDataAdapter(sql, cn);
行 24: DataSet ds = new DataSet();
行 25: da.Fill(ds);
行 26: return ds;
行 27: }

jiaweihan_001 2010-12-29
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zhiyi_zhou001 的回复:]
每天回帖即可获得10分可用分
[/Quote]
哈哈,有着想法的人很多,我就是其中一个
hl362496158 2010-12-29
  • 打赏
  • 举报
回复
没试过,想学习一下!我还以为就导出EXl呢
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 net_lover 的回复:]

string strCom = " SELECT * FROM [Shert1$A33:H44]";这种格式
[/Quote]
拜膜
hyrjlzw 2010-12-28
  • 打赏
  • 举报
回复
2楼,4楼是将文件当做数据库,读取其中的数据到DataTable,然后再用
for(int i=0;i<tb.rows.count;i++)
{
if(i=="33")
{}
}

应该行的通
generhappy 2010-12-28
  • 打赏
  • 举报
回复
string strCom = " SELECT * FROM [Shert1$A33:H44]";这种格
net5354 2010-12-28
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 net_lover 的回复:]
string strCom = " SELECT * FROM [Shert1$A33:H44]";这种格式
[/Quote]试试
孟子E章 2010-12-28
  • 打赏
  • 举报
回复
string strCom = " SELECT * FROM [Shert1$A33:H44]";这种格式
回头是岸 2010-12-28
  • 打赏
  • 举报
回复
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = " + filePath + ";Extended Properties ='Excel 8.0;HDR=NO;IMEX=1'";
zhiyi_zhou001 2010-12-28
  • 打赏
  • 举报
回复
每天回帖即可获得10分可用分
冷雪液 2010-12-28
  • 打赏
  • 举报
回复
public DataSet EcxelToDataGridView(string filePath)
{
OleDbConnection conn = null;
DataSet ds2 = null;
try
{
//根据路径打开一个Excel文件并将数据填充到DataSet中
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = " + filePath + ";Extended Properties ='Excel 8.0;HDR=NO;IMEX=1'";//导入时包含Excel中的第一行数据,并且将数字和字符混合的单元格视为文本进行导入
conn = new OleDbConnection(strConn);
conn.Open();
string strExcel = "";
OleDbDataAdapter myCommand = null;
strExcel = "select * from [sheet1$] where F1<>'' and F1<>null ";
myCommand = new OleDbDataAdapter(strExcel, strConn);
ds2 = new DataSet();
myCommand.Fill(ds2, "table1");
}
catch (Exception ex)
{
conn.Close();
}
finally
{
conn.Close();
}
return ds2;
}

/// <summary>
/// 导入数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void tsbtnImport_Click(object sender, EventArgs e)
{
//打开一个文件选择框
OpenFileDialog ofd = new OpenFileDialog();
ofd.Title = "Excel文件";
ofd.FileName = "";
ofd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);//为了获取特定的系统文件夹,可以使用System.Environment类的静态方法GetFolderPath()。该方法接受一个Environment.SpecialFolder枚举,其中可以定义要返回路径的哪个系统目录
ofd.Filter = "Excel文件(*.xls)|*.xls";
ofd.ValidateNames = true; //文件有效性验证ValidateNames,验证用户输入是否是一个有效的Windows文件名
ofd.CheckFileExists = true; //验证路径有效性
ofd.CheckPathExists = true; //验证文件有效性

string strName = string.Empty;
if (ofd.ShowDialog() == DialogResult.OK)
{
strName = ofd.FileName;
}
if (strName == "")
{
MessageBox.Show("没有选择Excel文件!无法进行数据导入");
return;
}

//调用导入数据方法
dgvTranslate.DataSource = EcxelToDataGridView(strName).Tables[0];
}
Nimaya_fengtui 2010-12-28
  • 打赏
  • 举报
回复
关键是怎样加查询条件
子夜__ 2010-12-28
  • 打赏
  • 举报
回复
yan267 2010-12-28
  • 打赏
  • 举报
回复
读出Excel,到datatable。然后判断datatable的行数不就可以了。

/// <summary>
/// 连接Excel
/// </summary>
/// <returns></returns>
private OleDbConnection excelConn(string path)
{
OleDbConnection Conn = null;
string excelConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + path.ToString().Trim() + ";" + "Extended Properties='Excel 8.0;hdr=no;IMEX=1'";
Conn = new OleDbConnection(excelConn);
return Conn;
}

public string ReadExcelToTempTable(string FName)
{
OleDbConnection connExcel = excelConn(FName);
string Error = "";
try
{
DataTable dt = new DataTable();

connExcel.Open();

string strCom = " SELECT * FROM [" + tableName + "]";///SQL操作语句,就是说:取得所有数据从Content
OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, connExcel);
DataSet myDataSet = new DataSet();///建立新的数据集myDataSet
myCommand.Fill(myDataSet);///填充数据集

dt = myDataSet.Tables[0];//Exceltable

return Error;

}
catch (System.Exception e)
{
return e.ToString();
}
finally
{
connExcel.Close();
}

}

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧