下面代码不知道怎么了,以前一直没问题的 现在 只能读出 Excel 的第一列的数据了请教!
Excel 有二张工作表。不知是不是这个原因
//读取数据
string strConn = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" + SavePath + @"\" + SaveFile + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'";
OleDbConnection conn = new OleDbConnection(strConn);
OleDbDataAdapter adp = new OleDbDataAdapter("Select * from [sheet1$]", conn);
DataSet ds = new DataSet();
adp.Fill(ds, "List");
我是只要读 [sheet1$] 表的数据。表里有很多列,现在不知道怎么只能读出第一列来。
不是,我是调试看 DataSet 里面的,只有一列数据。
string strConn = @"Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + fileInfo.FullName + ";" + "Extended Properties=\"Excel 12.0;HDR=YES;IMEX=1;\"";
string strExcel = "select * from [sheet1$]"; using (OleDbDataAdapter adaptor = new OleDbDataAdapter(strExcel, strConn))
{
DataSet ds = new DataSet();
adaptor.Fill(ds);
Excel_UserInfo = ds.Tables[0];
}或者复制一份 把你的另一个sheet删除 只留一个感觉不应该是sheet的问题
真是 sheet的问题
删了就好了 。
为什么有两张 sheet 就不行了。。?
求解呀
public static void MyXlsToExcelByDataSet(DataSet ds, string ExcelFileName, string[] ExcelWorkBokName)
{
XlsDocument xlsDocument = new org.in2bits.MyXls.XlsDocument();
xlsDocument.FileName = HttpUtility.UrlEncode(System.Text.Encoding.UTF8.GetBytes(ExcelFileName)) + ".xls";
for (int t = 0; t < ds.Tables.Count; t++)
{
//Excel工作表名称
Worksheet worksheet = xlsDocument.Workbook.Worksheets.AddNamed(ExcelWorkBokName[t]);
Cells cells = worksheet.Cells;
int columns = ds.Tables[t].Columns.Count;
for (int i = 0; i < columns; i++)//列名
{
cells.Add(1, (i + 1), ds.Tables[t].Columns[i].ColumnName.ToString().Trim());
}
for (int j = 0; j < ds.Tables[t].Rows.Count; j++)
{
for (int k = 0; k < columns; k++)
{
cells.Add(j + 2, (k + 1), ds.Tables[t].Rows[j][k].ToString().Trim());
}
}
}
xlsDocument.Send();
}这个方法难道有问题?