- ·上一篇:excel表格怎么取消自动检查
- ·下一篇:excel表格中半表格怎么输
excel表格非预期格式怎么
1.BT怎么和excel连接时系统提示外部表不是预期格式怎么?BT怎
对于由File。
Create(fileName)创建的Excel文件,虽然格式是Excel文件,但是并不是标准的Excel文件,用Ado。net对这种文件连接操作时,会提示“外部表不是预期的格式”错误。
这种文件用文本打开时和txt的格式是一样的。 对于提示“外部表不是预期的格式”错误的Excel文件的处理解决办法,用文件读取方式读入DataTable,再做处理 //读文件并存在内存表中 private DataTable ReadFile(string fileName, int columnNum) { DataTable dataRead = createDataTable(columnNum); if (File。
Exists(fileName)) { string strRead;//存储读取的文件数据 Encoding encoding = Encoding。 GetEncoding("GB18030"); try { FileStream fs = new FileStream(fileName, FileMode。
Open, FileAccess。Read, FileShare。
ReadWrite); StreamReader sr = new StreamReader(fs, encoding); strRead = sr。 ReadToEnd(); sr。
Close(); fs。Close(); //导入内存DataTable string[] readArray = strRead。
Split(new char[] { '/n' }, StringSplitOptions。RemoveEmptyEntries); foreach (string row in readArray) { string[] column = row。
Replace(" ", "")。Replace("/r","")。
Split(new char[] { '/t' }, StringSplitOptions。RemoveEmptyEntries); DataRow dr = dataRead。
NewRow(); for (int i = 0; i Rows。Add(dr); } } catch (Exception ex) { Console。
Write(ex。ToString()); } } else { MessageBox。
Show("缺少档案文件"); } return dataRead;。
2.asp.net 导入excel报外部表不是预期的格式 如何解决
添加引用导入命名空间mshtml; 在写方法 string msg = ""; if (this.fuLoad.HasFile) { string file = this.fuLoad.FileName; string fileName = this.fuLoad.PostedFile.FileName; string kmdm = ViewState["kmdm"].ToString(); string mc = ViewState["mc"].ToString(); string[] strs = file.Split('_'); string mc2 = strs[1].ToString(); User user = Session["user"] as User; string xd = RoomBll.getXd(user.Dwdm);//查出学校拥有的学段 string[] xds = xd.Split(','); string xdm = xds[xds.Length - 1].ToString();//学段码 if (mc == mc2) { try { int RecCount = 0; int ImportedRecCount = 0; List lstEntity = new List(); FileStream fs = new FileStream(fileName, FileMode.Open);//获取导入Excel的文件流 byte[] b = new byte[fs.Length]; fs.Read(b, 0, Convert.ToInt32(fs.Length)); string strDoc = System.Text.Encoding.UTF8.GetString(b, 0, b.Length); IHTMLDocument2 doc = new HTMLDocumentClass(); doc.write(strDoc); doc.close(); fs.Close(); fs.Dispose(); tb = ((HTMLBody)doc.body).getElementsByTagName("table"); foreach (HTMLTable el in tb) { int len = ((mshtml.IHTMLTableRow)el.rows.item(0, 0)).cells.length; int t = 0; foreach (IHTMLTableRow tr in el.rows) { t++; if (t model.Sl = ((mshtml.HTMLTableCell)tr.cells.item(9, 0)).innerText.ToString().Trim(); if (model.Sl != ""&&model!=null) { model.Dwdm = user.Dwdm; model.Fldm = kmdm; model.AssetId = ((mshtml.HTMLTableCell)tr.cells.item(0, 0)).innerText; model.Xdm = AssetBll.getMaxXdm(kmdm, model.AssetId); model.Dj = ((mshtml.HTMLTableCell)tr.cells.item(6, 0)).innerText; model.Je = (Convert.ToInt32(model.Sl) * Convert.ToDouble(model.Dj)).ToString(); model.Bpsl = ((mshtml.HTMLTableCell)tr.cells.item(7, 0)).innerText; model.Bpje = (Convert.ToInt32(model.Bpsl) * Convert.ToDouble(model.Dj)).ToString(); if (model.Bpsl.ToString() != "0") { model.Qksl = (Convert.ToInt32(model.Bpsl) - Convert.ToInt32(model.Sl)).ToString(); model.Qkje = (Convert.ToInt32(model.Bpje) - Convert.ToInt32(model.Je)).ToString(); } else { model.Qksl = "0"; model.Qkje = "0"; } lstEntity.Add(model); } } } if (lstEntity != null && lstEntity.Count > 0) { string table = AssetBll.getSjDwdm(user.Dwdm); string tableName = "RPT_ASSET_" + table; ImportedRecCount = AssetBll.addAssets(lstEntity, tableName); // msg = "总记录数:[" + RecCount.ToString() + "] 条,成功导入:[" + RecCount.ToString() + "]条."; msg = "成功导入:[" + lstEntity.Count.ToString() + "]条."; } else { msg = "无有效数据。
"; } } catch (Exception ex) { msg = "导入出错:" + ex.Message; } } ClientScript.RegisterStartupScript(this.GetType(), "aa", ""); } else { ClientScript.RegisterStartupScript(this.GetType(), "aa", ""); }。
