解决方案 »
- Winform RDLC传参求教。。
- 帮忙看看一个LinQ的简单问题。
- 新手指教:label的BackColor问题
- float.Parse("99999999")结果为100000000,float最大能表示的整数是多少?
- dataSet中的字增量关联问题
- DataList的ItemCommand中如何得到选择的是DataList第几行??
- [求助]用axWebBrowser控件开发浏览器,请问怎样实现脱机工作?
- get;set;的疑问
- C# donet speech 语音合成,如何让文本随读并高亮显示?
- 在c#中如何调用.exe的可执行文件?
- C# 后台获取ListBox值 50分
- C# 跨线程问题,急求
没有模板的话,客户今天是这样的表,明天是那样的表式行不同的建议做成主从表,主表一个工作表,从表一个工作表如果客户想简化录入的话,你可以看看VBA编程,简单的写的程序,可以解决excel很多问题
/// <summary>
/// 从Excel文件中获取信息
/// </summary>
/// <param name="fileName"></param>
/// <param name="isContianCaption"></param>
/// <returns></returns>
public DataTable GetDataFormExcel(string fileName)
{
//string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + fileName + ";" + "Extended Properties='Excel 8.0;IMEX=1;'";
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + fileName + ";" + "Extended Properties=Excel 8.0;";
OleDbConnection conn = null;
DataTable dtExcel = new DataTable();
try
{
conn = new OleDbConnection(strConn);
conn.Open();
//取得表名
DataTable schemaTable = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
string tableName = schemaTable.Rows[1][2].ToString().Trim();
//第三行为表数据
string sql = " select * from [" + tableName + "] where 1=1 ";
OleDbCommand oleCommand = new OleDbCommand(sql, conn);
OleDbDataAdapter oleAdapter = new OleDbDataAdapter(oleCommand);
DataSet myDataSet = new DataSet();
// 将 Excel 的[Sheet1]表内容填充到 DataSet 对象
oleAdapter.Fill(myDataSet, tableName);
DataTable dt = myDataSet.Tables[0];
dt.Columns.Add("Index");
//移除不符合条件的行
DataRow[] rows = dt.Select("[Port of Discharge ] is not null");
DataTable returnDt = dt.Clone();
for (int i = 0; i < rows.Length; i++)
{
rows[i]["Index"] = i;
returnDt.ImportRow(rows[i]);
}
return returnDt;
}
catch (Exception ex)
{
return null;
}
finally
{
if (conn != null && conn.State != ConnectionState.Closed)
conn.Close();
}
}