不打开EXCEL文件读取数据

stevenjin 2010-08-28 04:06:35
最近要做如下需求的项目,搜便了网络,还是末能找到解决方案。
情况是这样的:
我这个程序需求读一个“台财“的EXCEL文件。该文件内容是些汇总信息。
但我不需要“打开”该文件,也不要“另存为”。只要读取里面的相关数据即可。
我用尽了方法,用一种方式做到了不弹出”另存为“对话框”。但每次操作都会打开该文档。
...全文
445 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
teerhu 2010-08-28
  • 打赏
  • 举报
回复

public void WriteExcel(DataTable dtSource, string strPath, string strSheetName)
{
System.Data.OleDb.OleDbConnection OleDb_Conn = new System.Data.OleDb.OleDbConnection();
OleDb_Conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;HDR=No';" + "Data Source=\"" + strPath + "\"";
try
{
OleDb_Conn.Open();
System.Data.OleDb.OleDbCommand OleDb_Comm = new System.Data.OleDb.OleDbCommand();
OleDb_Comm.Connection = OleDb_Conn;
string strCmd;
try
{
strCmd = "drop table [" + strSheetName + "]";
OleDb_Comm.CommandText = strCmd;
OleDb_Comm.ExecuteNonQuery();
}
catch
{
}
strCmd = "create Table [" + strSheetName + "](";
foreach (DataColumn dc in dtSource.Columns)
{
strCmd += "[" + dc.ColumnName + "] nvarchar(100),";
}
strCmd = strCmd.Trim().Substring(0, strCmd.Length - 1);
strCmd += ")";
OleDb_Comm.CommandText = strCmd;
OleDb_Comm.ExecuteNonQuery();
foreach (DataRow dr in dtSource.Rows)
{
if (dr.RowState != System.Data.DataRowState.Deleted)
{
strCmd = "insert into [" + strSheetName + "] values(";
foreach (DataColumn dc in dtSource.Columns)
{
strCmd += "'" + dr[dc.ColumnName].ToString() + "',";
}
strCmd = strCmd.Substring(0, strCmd.Length - 1);
strCmd += ")";
OleDb_Comm.CommandText = strCmd;
OleDb_Comm.ExecuteNonQuery();
}
}
OleDb_Conn.Close();
}
catch (Exception ex)
{
throw ex;
}
finally
{
OleDb_Conn.Close();
}
}

wuyq11 2010-08-28
  • 打赏
  • 举报
回复
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FileName + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";
DataSet ds = new DataSet();
using(OleDbConnection conn = new OleDbConnection(strConn))
{
conn.Open();
string str = "select * from [sheet1$]";
OleDbDataAdapter da= new OleDbDataAdapter(str, conn);
da.Fill(ds);
conn.Close();
}
读取到dataset
teerhu 2010-08-28
  • 打赏
  • 举报
回复
你不打開,怎麼讀呢
感應??


湖中仙人 2010-08-28
  • 打赏
  • 举报
回复
你实际上是打开了你要的那个EXCEL文件的,只是不要那个打开的对话框,打开的对话框只是为了指定路径,那你就直接将要读取的EXCEL文件路径写到代码里就是了

110,500

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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