导出excel正规格式,excel导入SQL,请高手指点,在线等,另+100分。
小弟做了个导出excel,在用excel导入SQL,单导出来没问题,但是把导出来的excel在导进SQL就有问题.但是新建一个excel导入SQL又没问题,问题就出在,我导出来的只一个内似与excel的工作薄,我要把工作薄转换为excel表的格式,在把excel表里的名字改成Sheet1在导就行,转换格式没什么问题,但是又要转换excel表里的表里就有点麻烦,我导出来的时候又不能改excel表里的名字。所以请高手帮忙。修改我的代码,和给段源代码都可以,或者给个导出导入excel的小项目也可以,求求大家啦!本人邮箱cwk_1106@163.com MSN: cwk_1106@hotmail.com
导出代码:
ds = new DataSet();
ds = FEGCRM.Access.AlanSheetDA.Get( " ", " ");
DataTable dt = ds.Tables[ "Alan "];
dt.Columns[ "Id "].ColumnName = "ID ";
dt.Columns[ "LotNo "].ColumnName = "订单批号 ";
dt.Columns[ "Enterprise "].ColumnName = "业 ";
StringWriter sw = new StringWriter();
GridView dv = new GridView();
dv.DataSource = dt;
dv.DataBind();
dv.AllowPaging = false;
Response.ClearContent();
Response.Charset = "GB2312 ";
Response.AppendHeader( "Content-Disposition ", "attachment;filename=Sheet1.xls ");
// 如果设置为 GetEncoding( "GB2312 ");导出的文件将会出现乱码!!!
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.ContentType = "application/excel ";
HtmlTextWriter htw = new HtmlTextWriter(sw);
dv.RenderControl(htw);
Response.Write(sw.ToString());
Response.End();
导入代码:
string strFullFileName = DateTime.Now.ToString( "yyyymmddhhmmss ") + ".xls ";
string strpath = Server.MapPath( "excelfile ") + strFullFileName;//确定一个文件名
fileup.PostedFile.SaveAs(strpath);
string mystring = "provider = microsoft.jet.oledb.4.0 ; data source = " + strpath + ";extended properties=excel 8.0 ";
OleDbConnection cnnxls = new OleDbConnection(mystring);
OleDbDataAdapter myda = new OleDbDataAdapter( "select * from [Sheet1$] ", cnnxls);
DataSet myds = new DataSet();
myda.Fill(myds);
try
{
Edit_data(myds.Tables[0]);//传参数进行导入
}
catch (Exception ex)
{
Label1.Text = "导入数据出现错误... ";
}
ds = new DataSet();
ds = FEGCRM.Access.AlanSheetDA.Get( " ", " ");
this.GridItem.DataSource = ds;
if (ds.Tables[0].Rows.Count != 0)
{
string m_SqlNo = ds.Tables[0].Rows[0][ "Id "].ToString();
SetOrderDetail(m_SqlNo);
}
以上代码导入肯定没错,导出的时候导的不是非正规的excel表格,请高手指点,还有就是导出的时候如何修改excel表里的表名,就是如何把保存的文件名和excel表里的表里分开因为我导入的时候表名只能用Sheet1,所以我导出的时候excel表里的表里一定要是Sheet1,请高手指点.
[解决办法]
学习,帮顶,一直不太明白为什么要把表格里的导入到sql中
[解决办法]
Excel的Sheet的名称通过OLEDB是改不了的,不过你可以建好一张模板表,在里面设置好需要的Sheet名,字段名等,使用的时候先COPY到新文件,然后再打开Insert就可以了。
[解决办法]
帮你顶下LZ我前几天也遇到跟你同样的问题,到现在还没解决.关注,祝福你能快点解决.高手们也应该多指点新手。