Excel导入问题 外部表不是预期的格式。

Fry_cici 2010-12-24 04:26:36
我从数据从一个页面导出到一个xls里面 然后把这个xls导入到另一个数据库 出现的问题 该怎么解决?
...全文
2587 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
jianghao123ronghua 2012-08-28
  • 打赏
  • 举报
回复
怎么解决的啊?
Fry_cici 2011-05-18
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 shchv 的回复:]
这个帖子怎么没人跟了,我也遇到一样的问题。
[/Quote]

是版本的问题 office 2003 和 2007之间的问题 你可以去看看
SZ-诚 2011-05-01
  • 打赏
  • 举报
回复
这个帖子怎么没人跟了,我也遇到一样的问题。
Fry_cici 2010-12-27
  • 打赏
  • 举报
回复
是版本的问题
Fry_cici 2010-12-27
  • 打赏
  • 举报
回复


问题解决了....
Fry_cici 2010-12-25
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 runbear 的回复:]
LZ用记事本打开这excel就知道怎么回事的了。
LZ像4楼这样。
aaaaaaa,aaaaaaaaa,11111111111111111
aaaaaaa,aaaaaaaaa,11111111111111111
aaaaaaa,aaaaaaaaa,11111111111111111
aaaaaaa,aaaaaaaaa,11111111111111111
aaaaaaa,aaaaaaaa……
[/Quote]
分割的话 还是有弊端啊??
我不想出现什么巧合 用excel 就不会 难道没什么办法可以做到??
RUNBEAR 2010-12-25
  • 打赏
  • 举报
回复
LZ用记事本打开这excel就知道怎么回事的了。
LZ像4楼这样。
aaaaaaa,aaaaaaaaa,11111111111111111
aaaaaaa,aaaaaaaaa,11111111111111111
aaaaaaa,aaaaaaaaa,11111111111111111
aaaaaaa,aaaaaaaaa,11111111111111111
aaaaaaa,aaaaaaaaa,11111111111111111

像读文本文件一样去读吧。
只需要注意分割字符就好了。


Fry_cici 2010-12-25
  • 打赏
  • 举报
回复


我用下载excel后 双击打开出现了这个
Fry_cici 2010-12-25
  • 打赏
  • 举报
回复
有没有办法 设置导出的excel的版本 导入的excel连接字符串
RUNBEAR 2010-12-25
  • 打赏
  • 举报
回复
这个表是不是你自己导出的?
你想再导入是吗?

这个excel是不是输出流保存的。
你用记事本打开看看。
你用excel打开,并保存一份。再试下。
Fry_cici 2010-12-25
  • 打赏
  • 举报
回复
我先导出excel 然后导入 但是导入的时候 发现 open() 打不开了...
那么就是连接字符串的问题
是不是跟excel 本事有关啊?
我如何设置导出的excel 的版本 或是其他信息啊?
啊兵 2010-12-25
  • 打赏
  • 举报
回复
[Quote=引用楼主 fry_cici 的回复:]
我从数据从一个页面导出到一个xls里面 然后把这个xls导入到另一个数据库 出现的问题 该怎么解决?
[/Quote]
我从数据从一个页面导出到一个xls里面???
是标准的XLS格式吗?
Fry_cici 2010-12-25
  • 打赏
  • 举报
回复
呵呵 问题找到了 因为本机装的是office2007 所以导出来的数据也是2007
但是我的连接字符串是2003的 所以出问题了 有没有办法判断 导入的excel版本??
wuyq11 2010-12-24
  • 打赏
  • 举报
回复
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";
using(OleDbConnection OleConn = new OleDbConnection(strConn))
{
OleConn.Open();
String sql = "SELECT * FROM [Sheet1$]";
OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);
DataSet ds= new DataSet();
OleDaExcel.Fill(ds);
OleConn.Close();
}
检查excel,连接字符串
Fry_cici 2010-12-24
  • 打赏
  • 举报
回复

string XLS_Path = "~/Admin/upFile/";
string XLS_Name = "裸钻导入_" + DateTime.Now.ToString("yyyyMMddHHmmsssss") + ".xls";
string XLS_FullName = string.Empty;
string fileExtName = "";
if (fup2.PostedFile.ContentLength > 0)
{
try
{
fileExtName = fup2.PostedFile.FileName.Substring(fup2.PostedFile.FileName.LastIndexOf("."));
if (fileExtName != ".xls" || fileExtName.Length < 1)
{
lbMsg0.Text = "无效的文件,。";
return;
}
XLS_FullName = Server.MapPath(XLS_Path + XLS_Name);
fup2.PostedFile.SaveAs(XLS_FullName);
}
catch (Exception ex)
{
lbMsg0.Text = ex.ToString();
}
}
else
{
lbMsg0.Text = "请选择文件后再上传!!!";
return;
}
var msg = "";
var begin = DateTime.Now;


try
{
string mystring = "Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = '" + XLS_FullName + "'" + ";Extended Properties=Excel 8.0;Persist Security Info=False ";
OleDbConnection cnnxls = new OleDbConnection(mystring);
cnnxls.Open();


//返回Excel的架构,包括各个sheet表的名称,类型,创建时间和修改时间等 
DataTable dtSheetName = cnnxls.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" });
//包含excel中表名的字符串数组
string[] strTableNames = new string[dtSheetName.Rows.Count];
for (int k = 0; k < dtSheetName.Rows.Count; k++)
{
strTableNames[k] = dtSheetName.Rows[k]["TABLE_NAME"].ToString();
}
OleDbDataAdapter myCommand = null;
DataTable dt = new DataTable();
//从指定的表明查询数据,可先把所有表明列出来供用户选择
string strExcel = "select*from[" + strTableNames[0] + "]";
myCommand = new OleDbDataAdapter(strExcel, cnnxls);
dt = new DataTable();
myCommand.Fill(dt);
string AdminCName ="aa"
var str = bll.BatchDiamond1(dt, AdminCName, pnum);


这个是导入方法
Fry_cici 2010-12-24
  • 打赏
  • 举报
回复


public bool ExportExcel(DataTable myDataTable, string saveFileName)
{
try
{
if (saveFileName.IndexOf(":") < 0) return false; //被点了取消

Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
object missing = System.Reflection.Missing.Value;

if (xlApp == null)
{
MessageBox.Show("无法创建Excel对象,可能您的机子未安装Excel");
return false;
}
Microsoft.Office.Interop.Excel.Workbooks workbooks = xlApp.Workbooks;
Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1]; //取得sheet1
Microsoft.Office.Interop.Excel.Range range;
range = worksheet.Columns;
range.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter; //水平对齐设置
range.VerticalAlignment = Microsoft.Office.Interop.Excel.XlVAlign.xlVAlignCenter; //垂直对齐设置
range.ColumnWidth = 15;
#region 写入字段
worksheet.Cells[1, 1] = "钻石号";
//.....
worksheet.Cells[1, 21] = "类型外键";
#endregion
//写入数值
for (int r = 0; r < myDataTable.Rows.Count; r++)
{

worksheet.Cells[r + 2, 1] = myDataTable.Rows[r]["DiamNumber"];
//.........
worksheet.Cells[r + 2, 21] = myDataTable.Rows[r]["PcID"];

}
worksheet.SaveAs(saveFileName, missing, missing, missing, missing, missing, missing, missing, missing, missing);
workbook.Close(missing, missing, missing);
xlApp.Quit();
GC.Collect();
GC.WaitForPendingFinalizers();
return true;
}
catch (Exception ex)
{
return false;
}
}


这是导出方法是这样的
Fry_cici 2010-12-24
  • 打赏
  • 举报
回复
而且从别的地方导出来的是excel 的版本 .
我也只能上传excel版本
flyerwing 2010-12-24
  • 打赏
  • 举报
回复
这个你得试,EXCEL可以用这数据的好象.
Fry_cici 2010-12-24
  • 打赏
  • 举报
回复
你是说把导入的数据换成这个格式 ,要是数据里面有特殊符号 怎么办呢??
flyerwing 2010-12-24
  • 打赏
  • 举报
回复
aaaaaaa,aaaaaaaaa,11111111111111111
aaaaaaa,aaaaaaaaa,11111111111111111
aaaaaaa,aaaaaaaaa,11111111111111111
aaaaaaa,aaaaaaaaa,11111111111111111
aaaaaaa,aaaaaaaaa,11111111111111111
这样试下了.
加载更多回复(3)

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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