打开Excel的问题

gxz01 2003-09-22 11:47:06
我用下面的代码打开一个Excel文件,会出现错误提示 "定义了过多字段"
请问是什么意思.文件中只有下面的这几列
日期 编号 频道 播出时间 广告中文名称&版本描述 长度 语言 备注

if(this.progressBar1.Value!=0)
this.progressBar1.Value=0;
string strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+this.textBox_LLFileName.Text+";Extended Properties=Excel 8.0";

OleDbConnection llConnection=new OleDbConnection(strConn);
llConnection.Open();
DataTable dt=llConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,new object[]{null,null,null,"TABLE"});
bool y=false;
foreach(DataRow dr in dt.Rows)
{
//MessageBox.Show(dr["TABLE_NAME"].ToString ().Trim());
if(dr["TABLE_NAME"].ToString().Trim()=="新广告表$")
{
y=true;
break;
}

}

if(!y)
{
MessageBox.Show("新广告表的文件的格式不对,没有\"新广告表\"");
return;
}

string name="[新广告表$]";
string strSelect="SELECT * FROM "+name;
OleDbDataAdapter llAdapter=new OleDbDataAdapter(strSelect,llConnection);
OleDbCommandBuilder llBuilder=new OleDbCommandBuilder(llAdapter);
DataSet llDataSet=new DataSet();
llAdapter.Fill(llDataSet,name);
DataTable llTable=llDataSet.Tables[0];
int llRo=llTable.Rows.Count;//监察员资料的条数
//MessageBox.Show(llDataSet.Tables[0].Rows.Count.ToString ());
...全文
48 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
gxz01 2003-09-23
  • 打赏
  • 举报
回复
请各位再帮忙看一下,急用.
雪狼1234567 2003-09-22
  • 打赏
  • 举报
回复
以下是我用的方法,函数的参数是一条sql语句

public void PrintData(string sqlcommand)
{//将当前显示的数据以excel下载到客户端的通用函数
string fileExcel, filePath, fileName, strLine;
System.IO.FileStream objFileStream;
System.IO.StreamWriter objStreamWriter;
Random nRandom = new Random(DateTime.Now.Millisecond);
fileExcel = "t" + nRandom.Next().ToString() + ".xls";
filePath = Server.MapPath("\\netsafe\\print_data");
fileName = filePath + "\\" + fileExcel;
objFileStream = new System.IO.FileStream(fileName, System.IO.FileMode.OpenOrCreate , System.IO.FileAccess.Write);
objStreamWriter = new System.IO.StreamWriter(objFileStream,System.Text.Encoding.Unicode);
sqlCommand1.CommandText=sqlcommand;
SqlDataReader dr;
sqlCommand1.Connection.Open();
dr = sqlCommand1.ExecuteReader();
strLine = "";
for (int i = 0; i <= dr.FieldCount-1; i++)
{
strLine = strLine + dr.GetName(i).ToString() + Convert.ToChar(9);
}
objStreamWriter.WriteLine(strLine);
strLine = "";
while (dr.Read())
{
for (int i = 0; i <= dr.FieldCount-1; i++)
{
strLine = strLine + dr.GetSqlValue(i) + Convert.ToChar(9);
}
objStreamWriter.WriteLine(strLine);
strLine="";
}
dr.Close();
sqlCommand1.Connection.Close();
objStreamWriter.Close();
objFileStream.Close();
Response.Write("<script language=JavaScript>window.open('print_data/"+fileExcel+"','',',,status=yes,location=no,toolbar=yes,scrollbars=yes,,directories=yes,menubar=yes,,')</script>");
}

hdslah 2003-09-22
  • 打赏
  • 举报
回复
up
gxz01 2003-09-22
  • 打赏
  • 举报
回复
我是在winform下的,现在还没有看web的东西.
脆弱的肠胃 2003-09-22
  • 打赏
  • 举报
回复
高手风范!!!

110,539

社区成员

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

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

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