C# 帮解决一个 读取excel问题 用C#读取excel表格中的内容,表格如下读取到AM和AN列的时候,读到的内容竟然分别成了 '123$'.GGT 和 '123$'.GGT1谁给解释一下啊~!~! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 就调试跟踪才知道读取出来的跟在Excel表格中的不一样啊。123是文件的名字 就调试跟踪才知道读取出来的跟在Excel表格中的不一样啊。123是文件的名字没有出现错误,只是读出来的值与在excel表格中的不一样啊。 本帖最后由 net_lover 于 2011-07-22 10:06:55 编辑 嗯,在单元格地址栏里看,有一个GGT后面好像有个空格。其它都一样 其它的列都读的很正常,唯独这两个。123是excel文件的名字 把excel里AM列的内容改为'GGT试试,就是数据前加半角的单引号。或是把那两列的单元格格式设置为普通文本。 /// <summary> /// 读取EXCEL中所有记录 /// </summary> /// <param name="PhyPath"></param> public void GetExcelDataDal() { System.Windows.Forms.OpenFileDialog openFileDialog1 = new OpenFileDialog(); openFileDialog1.InitialDirectory = @"C:\Documents and Settings\Administrator\桌面"; openFileDialog1.Filter = "xls files (*.xls)|*.xls"; openFileDialog1.FilterIndex = 2; openFileDialog1.RestoreDirectory = true; //openFileDialog1.Multiselect = true; if (openFileDialog1.ShowDialog() == DialogResult.OK) { string filename = openFileDialog1.FileName;//c:\\123.xls //创建一个数据链接 string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source =" + filename + " ;Extended Properties='Excel 8.0;HDR=Yes;IMEX=1';"; OleDbConnection myConn = new OleDbConnection(strCon); DataTable sheetNames = null; myConn.Close(); string SheetName = null; for (int i = 0; i < sheetNames.Rows.Count; i++) { SheetName = sheetNames.Rows[i][2].ToString(); break; } SheetName = "[" + SheetName + "]"; myConn.Open(); string strCom = " SELECT * FROM " + SheetName; OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, myConn); DataSet myDataSet = new DataSet(); myCommand.Fill(myDataSet, SheetName); myConn.Close(); DataTable dt = myDataSet.Tables[0]; DataView dv = new DataView(dt); if (dt.Columns[2].Caption == "标本号") { for (int i = 0; i < dt.Rows.Count; i++) { W_ZHXM w_zhxm = new W_ZHXM(); w_zhxm.TJH = dt.Rows[i][2].ToString(); w_zhxm.ListDyxm = new List<W_DYXM>(); for (int j = 0; j < dt.Columns.Count; j++) { W_DYXM w_dyxm = new W_DYXM(); w_dyxm.YWJM = dt.Columns[j].Caption; w_dyxm.MyValue = dt.Rows[i][j].ToString(); w_zhxm.ListDyxm.Add(w_dyxm); } W_ZHXM.List_Zhxm.Add(w_zhxm); } } } }这是源代码 DataSet myDataSet = new DataSet(); myCommand.Fill(myDataSet, SheetName);在断点跑完上面fill之后 你看看 myDataSet 的放大镜里面的数据是不是对的 跟踪了,大部分是正常的。除了上面说的GGT两列与Excel中的不一样。 如何实现tcp网络反向连接? 求救!关于网站发布的问题 用于errorprovider的icon图标哪里有下载? 两副位图C#如何实现进行与或操作? 文件夹的传输 esc/pos 指令 120分 我 在office2000下 开发 的程序 ,在office2003下,怎么运行 下载过的文件,再次下载的时候报错 如何在.net的安装程序自定义全屏安装背景 关于文件读写的问题,各位高手帮忙! C# Winform 中未能找到引用组件 怎么解决 怎样递归判断一个文件夹内是否还有子文件夹?
就调试跟踪才知道读取出来的跟在Excel表格中的不一样啊。123是文件的名字
就调试跟踪才知道读取出来的跟在Excel表格中的不一样啊。123是文件的名字
没有出现错误,只是读出来的值与在excel表格中的不一样啊。
嗯,在单元格地址栏里看,有一个GGT后面好像有个空格。其它都一样
或是把那两列的单元格格式设置为普通文本。
/// <summary>
/// 读取EXCEL中所有记录
/// </summary>
/// <param name="PhyPath"></param>
public void GetExcelDataDal()
{
System.Windows.Forms.OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.InitialDirectory = @"C:\Documents and Settings\Administrator\桌面";
openFileDialog1.Filter = "xls files (*.xls)|*.xls";
openFileDialog1.FilterIndex = 2;
openFileDialog1.RestoreDirectory = true;
//openFileDialog1.Multiselect = true; if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
string filename = openFileDialog1.FileName;//c:\\123.xls //创建一个数据链接
string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source =" + filename + " ;Extended Properties='Excel 8.0;HDR=Yes;IMEX=1';"; OleDbConnection myConn = new OleDbConnection(strCon); DataTable sheetNames = null;
myConn.Close(); string SheetName = null; for (int i = 0; i < sheetNames.Rows.Count; i++)
{
SheetName = sheetNames.Rows[i][2].ToString(); break;
}
SheetName = "[" + SheetName + "]"; myConn.Open(); string strCom = " SELECT * FROM " + SheetName;
OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, myConn);
DataSet myDataSet = new DataSet();
myCommand.Fill(myDataSet, SheetName);
myConn.Close(); DataTable dt = myDataSet.Tables[0]; DataView dv = new DataView(dt); if (dt.Columns[2].Caption == "标本号")
{
for (int i = 0; i < dt.Rows.Count; i++)
{
W_ZHXM w_zhxm = new W_ZHXM();
w_zhxm.TJH = dt.Rows[i][2].ToString();
w_zhxm.ListDyxm = new List<W_DYXM>(); for (int j = 0; j < dt.Columns.Count; j++)
{
W_DYXM w_dyxm = new W_DYXM();
w_dyxm.YWJM = dt.Columns[j].Caption;
w_dyxm.MyValue = dt.Rows[i][j].ToString();
w_zhxm.ListDyxm.Add(w_dyxm);
} W_ZHXM.List_Zhxm.Add(w_zhxm);
}
} }
}
这是源代码
myCommand.Fill(myDataSet, SheetName);在断点跑完上面fill之后 你看看 myDataSet 的放大镜里面的数据是不是对的