读书人

excel,该如何处理

发布时间: 2012-01-28 22:06:13 作者: rapoo

excel
我想读取excel 里面的数据。第一次用啊 ,不知道怎么用, 那位能指点指点?有例子的发个例子啊。


[解决办法]
操作EXCEL跟操作其他数据库一样,EXCEL本来也就是一种数据库。
[解决办法]
帮LZ顶
[解决办法]
要引入excel操作的三个dll文件,自己下,这是我的代码,参考一下
using System;
using System.Collections.Generic;
using System.Text;

namespace ResourceManage
{
public class ExcelData
{
private List<SaveData> QueryData = null;

private Excel.ApplicationClass MyExcel = null;
private Excel.Workbooks MyWorkBooks = null;
private Excel.Workbook MyWorkBook = null;
private Excel.Worksheet MyWorkSheet = null;

public ExcelData(string FileName)
{
QueryData = new List<SaveData>();

MyExcel = new Excel.ApplicationClass();
MyWorkBooks = MyExcel.Workbooks;
MyWorkBook = MyWorkBooks.Open(FileName, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing);
MyWorkSheet = (Excel.Worksheet)MyWorkBook.Worksheets[1];
}

// 查询
public List<SaveData> ExcelQueryData()
{
for (int i = 2; i <= MyWorkSheet.UsedRange.Rows.Count; i++)
{
SaveData tempdata = new SaveData();
tempdata.id = ((Excel.Range)MyWorkSheet.Cells[i, 1]).Text.ToString();
tempdata.CodeName = ((Excel.Range)MyWorkSheet.Cells[i, 2]).Text.ToString();
tempdata.Language = ((Excel.Range)MyWorkSheet.Cells[i, 3]).Text.ToString();
tempdata.FileName = ((Excel.Range)MyWorkSheet.Cells[i, 4]).Text.ToString();
QueryData.Add(tempdata);
}
return QueryData;
}

// EXCEL数据增加
public void ExcelAddData(SaveData addData)
{
int count = MyWorkSheet.UsedRange.Rows.Count + 1;
Excel.Range addRange = MyWorkSheet.get_Range(MyWorkSheet.Cells[count, 1], MyWorkSheet.Cells[count, 4]);
object[] obj ={ addData.id, addData.CodeName, addData.Language, addData.FileName };
addRange.Value2 = obj;
// 保存
MyWorkBook.Save();
}

// EXCEL数据修改
public void ExcelUpdateData(SaveData updateData)
{

for (int i = 2; i <= MyWorkSheet.UsedRange.Rows.Count; i++)
{
string tempId = ((Excel.Range)MyWorkSheet.Cells[i, 1]).Text.ToString();
if (string.Compare(updateData.id, tempId) == 0)
{
Excel.Range updateRange = MyWorkSheet.get_Range(MyWorkSheet.Cells[i, 1], MyWorkSheet.Cells[i, 4]);
object[] obj ={ updateData.id, updateData.CodeName, updateData.Language, updateData.FileName };
updateRange.Value2 = obj;
// 保存
MyWorkBook.Save();
break;
}
}
}

// EXCEL 数据删除
public void ExcelDeleteData(string delID)
{
for (int i = 2; i <= MyWorkSheet.UsedRange.Rows.Count; i++)
{
string tempId = ((Excel.Range)MyWorkSheet.Cells[i, 1]).Text.ToString();
if (string.Compare(delID, tempId) == 0)
{
Excel.Range delRange = MyWorkSheet.get_Range(MyWorkSheet.Cells[i, 1], MyWorkSheet.Cells[i, 4]);


delRange.EntireRow.Delete(Excel.XlDeleteShiftDirection.xlShiftUp);
// 保存
MyWorkBook.Save();
break;
}
}
}

// 关闭
public void ExcelClose()
{
MyWorkBook.Save();
MyWorkBook.Close(true, null, null);
MyExcel.Quit();
}
}
}

[解决办法]
//需要导入的包
using System.Text;
using System.Data.OleDb;

//获取第一个表名
public string getFristTableName(string FilePath)
{
string tableName = "";
using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet." + "OLEDB.4.0;Extended Properties=\"Excel 8.0\";Data Source=" + FilePath))
{
conn.Open();
DataTable dt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
tableName = dt.Rows[0][2].ToString().Trim();
conn.Close();

}
return tableName;
}

//当中有一些调用方法要去掉
using (DbDataServices db = new DbDataServices())
{
string sqlqx = "select count(UserID) from UserName,Jurisdiction_Type where (Jurisdiction_Type.Type_ID=UserName.UserName_Jurisdiction) and UserID='" + Cookies_UserID + "' and (charindex(rtrim('" + PageID + "'), (Type_Content))>0)";
if (Convert.ToInt32(db.ExecuteScalar(sqlqx)) < 1)
{
Response.Redirect("../Sorry_Qx.aspx");
}
else
{
string Filepath = "";
string Errmess = "";
DataSet exceldt = new DataSet();
if (fileUp.PostedFile.FileName.Trim() == "")
{
Response.Write("<script>alert('请正确选择上传文件!')</script>");
return;
}
Filepath = fileUp.PostedFile.FileName;
string ex_name = Filepath.Substring(Filepath.LastIndexOf(".") + 1);
ex_name = ex_name.ToLower();
if (ex_name != "xls")
{
Response.Write("<script>alert('请选择正确的文件!')</script>");
return;
}
Filepath = fileUp.PostedFile.FileName;
string exceluser = Server.MapPath("../UpLoad/EXCELuser/");
Framework.Util.FileHelper.AddFolder(exceluser);
string filename;
string file = string.Empty;

filename = Framework.Util.StringHelper.GetDataRandom();
filename = filename + "." + ex_name;
fileUp.PostedFile.SaveAs(exceluser + "/" + filename);
string tableName = getFristTableName(exceluser + "/" + filename);

if (tableName != "")
{
//Response.Write("<script>alert('" + tableName + "')</script>");
}
else
{
Response.Write("<script>alert('没有查询到该表名!')</script>");
}

string connstring = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\";Data Source=" + exceluser + "/" + filename;

OleDbConnection Conn = new OleDbConnection(connstring);
Conn.Open();
OleDbDataAdapter oda = new OleDbDataAdapter("SELECT * from[" + tableName + "]", Conn);



try
{
oda.Fill(exceldt, "client");
// Response.Write("<script>alert('" + excelDs.Tables["users"].Rows.Count + "')</script>");

}
catch (Exception err)
{
Response.Write(err.Message);
}
finally
{
Conn.Close();
Conn = null;
}

读书人网 >C#

热点推荐