新手问题!!急急急急急急急!!

wlaixuexi 2009-01-15 09:13:44
我是一个刚学习C#的菜鸟!以前也没学过编程之类的语言!!现在在做一个小程序!!我用的是c#2005,大体是把一个excel中的数据显示在一个listview当中。我也在主窗体上加了一个lable控件,用来显示读取的数据,因为我还不是很会用listview控件。我写了一个访问 excel的类:
public ExcelUse()
{
}

Excel.Application myExcel = null;
Excel.Workbook myBook = null;
Excel.Worksheet mySheet = null;

Random random = new Random();
string StrWord = null;
string StrMean = null;
WordInfo myWord = null;

public void OpenExcel()//先打开excel
{
myExcel = new Microsoft.Office.Interop.Excel.Application();
myBook = myExcel.Workbooks.Open(@"E:\Text 2005\单词\单词\bin\Debug\word.xls", 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);
}

public void CloseExcel()//关闭excel {
myExcel.Quit();
}

public void RandomOpenSheet()//随即打开sheet中的任意一个sheet,我设置了26个sheet。
{
int iSheet = random.Next(1, 26);
mySheet = (Excel.Worksheet)myBook.Sheets[iSheet];
}


public void OpenRows()//读取sheet中的任意一个单元格的数据。
{
int iRows = mySheet.UsedRange.Rows.Count;

for (int i = 2; i <= iRows; i++)
{
StrWord = ((Excel.Range)mySheet.Cells[i, 1]).Text.ToString();
StrMean = ((Excel.Range)mySheet.Cells[i, 2]).Text.ToString();
}
}

public void RandomOpenRows()随即读取sheet中的任意一个单元格数据
{
int iRows = mySheet.UsedRange.Rows.Count;
int iRow = random.Next(2, iRows);
StrWord = ((Excel.Range)mySheet.Cells[iRow, 1]).Text.ToString();
StrMean = ((Excel.Range)mySheet.Cells[iRow, 2]).Text.ToString();
}

//我又定义了一个类wordinfo ,用来记录rows中的数据。
public WordInfo GetWord()//这个方法是用来记录读取sheet中的单元格数据。当我调用这个方法时,在窗体的lable控件中将显示一条读取的数据。这些我一定都搞定了。
{
myWord = new WordInfo();

myWord.Word = StrWord;
myWord.Mean = StrMean;

return myWord;
}
现在我的问题是:我想把 一个sheet中的所有数据都能读取出来,因为上面的方法只能读取一条数据。现在想写一个方法,不知道怎么写这个方法。好像用个list<>方法实现~~。我现在不会写,哪位能帮忙写一下??还有怎么样把这些数据显示在listview中,哪位能帮我解决啊??真的急着解决这个问题啊~~ 我刚来的,分数不多,等有分了再给你们加分。哪位拜托帮忙一下啊!!希望有代码,要不我看不懂。
}
}

...全文
157 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wlaixuexi 2009-01-15
  • 打赏
  • 举报
回复
先谢谢5楼的朋友~~我研究一下~~不过谁能帮我用我写的那个方法处理处理最好因为我就对这样读取数据比较懂点~~我再等会,一会结贴~~谢谢各位~~
takako_mu 2009-01-15
  • 打赏
  • 举报
回复

using System;
using System.Data;
using System.Data.OleDb;
using System.Web.UI.WebControls;
using System.Xml;


public partial class Default3 : System.Web.UI.Page
{
//這個是用來抓文件地址的,把文件地址寫死了不好
public string FileName
{
get
{
if (ViewState["FileName"] != null)
return ViewState["FileName"].ToString();
else
{
ViewState["FileName"] = string.Empty;
return string.Empty;
}
}
set
{
ViewState["FileName"] = value;
}
}

protected void Page_Load(object sender, EventArgs e)
{

}

protected void btnShowPO2_Click(object sender, EventArgs e)
{
if (FileUpload1.PostedFile.ContentLength > 0)
{
FileName = FileUpload1.PostedFile.FileName;
GridviewBind(GridView1, ExcelToDataTable(FileName, "PO$"));
GridviewBind(GridView2, ExcelToDataTable(FileName, "PO Line$"));
GridviewBind(GridView3, ExcelToDataTable(FileName, "PO Detail$"));
}
}

//我是用Gridview綁定的,Listview和Gridview差不多,你稍作修改
public void GridviewBind(GridView Gridview, DataTable dt)
{
Gridview.DataSource = dt;
Gridview.DataBind();
}

//這里就是將Excel轉換成DataTable
public DataTable ExcelToDataTable(string fileName,string sheetName)
{
DataTable dt = new DataTable();
try
{
OleDbConnection conn = new OleDbConnection(@"provider=Microsoft.Jet.OLEDB.4.0;data source=" + fileName + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1;'");
conn.Open();
OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [" + sheetName + "]", conn);
DataSet ds = new DataSet();
da.Fill(ds);
conn.Close();
return ds.Tables[0];
}
catch
{
return dt;
}
}
}
wlaixuexi 2009-01-15
  • 打赏
  • 举报
回复
不会用DataTable,我没有过啊 不真的怎么用~~我刚学
cwmwss 2009-01-15
  • 打赏
  • 举报
回复
yes
takako_mu 2009-01-15
  • 打赏
  • 举报
回复
你將Excel中的數據讀到一個DataTable中
然后Listview直接綁定這個DataTable就可以了。

62,269

社区成员

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

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

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

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