小白求助~~

Ariousczz 2015-11-19 10:29:33
namespace 自制rock
{
public partial class Form1 : Form
{

//创建工作簿
private HSSFWorkbook wb;
//创建表
private ISheet st;
private IRow row;
private ICell cell;
private FileStream fileStream;
private Data data1 = new Data();

/// <summary>
/// 初始化
/// </summary>
public Form1()
{
InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)//窗体载入
{

InitialWorkBook("Book1.xls");
ReadInitialFormXls("Sheet1");
propertyGrid1.SelectedObject = data1;

}


/// <summary>
/// 读取一个Excel作为wb
/// </summary>
/// <param name="workBookPath"></param>
private void InitialWorkBook(string workBookPath)
{
this.fileStream = new FileStream(workBookPath, FileMode.Open, FileAccess.Read);
this.wb = new HSSFWorkbook(fileStream);
}

/// <summary>
/// 读取数据
/// </summary>
/// <param name="sheetName"></param>
private void ReadInitialFormXls(string sheetName)
{

//this.fileStream = new FileStream("Book1.xls", FileMode.OpenOrCreate, FileAccess.Read);
//this.wb = new HSSFWorkbook(fileStream);
wb.GetSheet(sheetName);

data1.Number101 = this.GetCellNumberValue(2, 2);
data1.Number102 = this.GetCellNumberValue(2, 3);
data1.Number103 = this.GetCellNumberValue(2, 4);
data1.Number201 = this.GetCellNumberValue(4, 2);
data1.Number202 = this.GetCellNumberValue(4, 3);
data1.Number203 = this.GetCellNumberValue(4, 4);

}

/// <summary>
/// 得到单元格的值
/// </summary>
/// <param name="rowIndex"></param>
/// <param name="cellIndex"></param>
/// <returns></returns>
private double GetCellNumberValue(int rowIndex, int cellIndex)
{
HSSFFormulaEvaluator evaluator = new HSSFFormulaEvaluator(wb);
st = wb.GetSheet("Sheet1");
ICell icell = st.GetRow(rowIndex).GetCell(cellIndex);
CellValue cellValue = evaluator.Evaluate(icell);
return cellValue.NumberValue;
}
}


这个项目是要读一个Excel中的值把他显示到propertygrid控件里。但是读到InitialWorkBook("Book1.xls")之后form1直接就出来了,后面那两句没执行。所以propertygrid里面啥都没有。。。
到底是啥毛病啊,实在搞不明白了
...全文
97 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ariousczz 2015-11-19
  • 打赏
  • 举报
回复
引用 1 楼 duanzi_peng 的回复:
加个Try catch 看看能不能捕获到异常
我贴出去了,您看一下~
Ariousczz 2015-11-19
  • 打赏
  • 举报
回复


InitialWorkBook("Book1.xls");
ReadInitialFormXls("Sheet1");
propertyGrid1.SelectedObject = data1;
在这三句加了try catch报错是

exception92 2015-11-19
  • 打赏
  • 举报
回复
加个Try catch 看看能不能捕获到异常
Ariousczz 2015-11-19
  • 打赏
  • 举报
回复
引用 4 楼 xdashewan 的回复:
你的xls不符合ole2的验证格式,如果你确定你的xls没问题,那么要注意下版本问题,2007和之前版本的连接字符串是不同的
谢谢,已经解决了。是Excel版本的问题,要另存为一下03-07版本的就好了
xdashewan 2015-11-19
  • 打赏
  • 举报
回复
你的xls不符合ole2的验证格式,如果你确定你的xls没问题,那么要注意下版本问题,2007和之前版本的连接字符串是不同的

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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