Response.ContentType = "application/vnd.ms-excel";
<?xml version="1.0" encoding="utf-8">
<ss:Workbook xmlns:....
<ss:worksheet........
<ss:table>
<ss:row>
<ss:cell>
<ss:data ss:type="string">123
</ss:cell>
...生成xls文件 03打开没问题 07打开的时候老提示
is different format than sepcified by the file extension
<?xml version="1.0" encoding="utf-8">
<ss:Workbook xmlns:....
<ss:worksheet........
<ss:table>
<ss:row>
<ss:cell>
<ss:data ss:type="string">123
</ss:cell>
...生成xls文件 03打开没问题 07打开的时候老提示
is different format than sepcified by the file extension
http://blog.csdn.net/caomei_jenny/article/details/3941480
读取并显示Excel文件中的内容(OleDb方式)
创建Excel文件。
在Excel文件中选择你要在页面中显示的内容,选择菜单“插入”-》“名称”-》“定义”,输入你对当前选择区域的命名。在这里,我命名为myRange1,这在后面将要用到(只有选择的内容才会被显示),保存到Web服务器的根目录中.编码。
新建一个ASP.NET应用程序,在默认的WebForm1.aspx中,拖放一个DataGrid控件,它将用来显示Excel中的内容。打开后台编码文件,引用名称空间System.Data.OleDb,因为后面的代码中将用到此名称空间。在Page_Load()事件中插入以下代码:代码// 创建字符串变量。"Data Source"为.xls文件所在的位置
string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;"+
"Data Source="+Server.MapPath("../ExcelData.xls")+";"+
"Extended Properties=Excel 8.0;"; // 创建连接对象
OleDbConnection objConnection = new OleDbConnection(strConnection); // 创建OleDbCommand对象。myRange1是Excel文件中定义的显示区域名
OleDbCommand objCmdSelect = new OleDbCommand("SELECT * FROM myRange1",objConnection);
// OleDbCommand objCmdSelect = new OleDbCommand("SELECT * FROM [sheet1$]", objConn); //访问指定表名中的内容,不必指定显示区域,表名默认为sheet1,sheet2...
// 以下Rows属性,可获得Excel 文件中的所有表,[0][2]为第一张表的表名
/*
DataTable schemaTable = objConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
string tableName = schemaTable.Rows[0][2].ToString().Trim();
*/
OleDbDataAdapter objAdapter = new OleDbDataAdapter();
DataSet dsExcel = new DataSet(); // 打开数据库连接
objConnection.Open(); objAdapter.SelectCommand = objCmdSelect;
objAdapter.Fill(dsExcel); // 把数据绑定到DataGrid控件上
DataGrid1.DataSource = dsExcel.Tables[0].DefaultView;
DataGrid1.DataBind(); // 关闭数据库连接
objConnection.Close();