C#操作Excel刷新数据出现的问题,几个月了呀,高手咋还没出现 本帖最后由 ykdrj 于 2011-12-16 20:28:19 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SQL SERVER 里也有透视数据的,但是Excel没怎么用过 你是不是要用程序操作EXCEL 我这里有例子----平时我是要用到才看的。(我也不很会,下面是我的笔记 )//下面是读EXCEL// 要选引入 nopiprivate void button1_Click(object sender, EventArgs e){ DataTable myT = ExcelToDataTable("c:/供应商导入模板.xls", "sheet1"); StringBuilder strs=new StringBuilder(); for (int j = 0; j < myT.Rows.Count; j++) { for (int i = 0; i < 8; i++) { strs.Append("\t"); if (myT.Rows[j][i]!= null) { strs.Append(myT.Rows[j][i].ToString()); } } strs.Append(Environment.NewLine); } textBox1.Text = strs.ToString();}public static DataTable ExcelToDataTable(string strExcelFileName, string strSheetName){ //源的定义 string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + strExcelFileName + ";" + "Extended Properties='Excel 8.0;HDR=NO;IMEX=1';"; //Sql语句 //string strExcel = string.Format("select * from [{0}$]", strSheetName); 这是一种方法 string strExcel = "select * from [sheet1$]"; //如果只想读取前两列可以用:select * from [Sheet1$A:B] //如果只想读取A1到B2的内容,就用:select * from [Sheet1$A1:B2] //定义存放的数据表 DataSet ds = new DataSet(); //连接数据源 OleDbConnection conn = new OleDbConnection(strConn); conn.Open(); //适配到数据源 OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel, strConn); adapter.Fill(ds, strSheetName); conn.Close();} //写入excel 更easy请看我的笔记:HSSFWorkbook hssfworkbook = new HSSFWorkbook();// 在 Excel 工作簿中建立工作表,名稱為 Sheet1HSSFSheet sheet1 = hssfworkbook.CreateSheet("Sheet1");// 寫入資料到工作表中 sheet1.CreateRow(1).CreateCell(1).SetCellValue("何腾飞");sheet1.CreateRow(2).CreateCell(1).SetCellValue("是个小工");// 儲存檔案FileStream file = new FileStream(@"C:\NPOI.xls", FileMode.Create);hssfworkbook.Write(file);file.Close(); 你要下载nopi ? 已经找到解决方案,原来是我没有执行SAVE方法,所以整个过程没有任何报错,但是最后没保存,导致我以为根本就没有刷新 hello,楼主你好,我现在也经常在研究 PivotTables.不知道楼主有试过设置 PivotTables的显示格式么?希望能大家交流一下 在datanavigator 中加了保存的按钮,修改数据后没有保存到数据库 Webservice类的调用 TextBox 光标位置问题 怎样隐藏datagridview的行标题和列标题? DataGridView显示图片的问题 将一个listbox选中项移至另一个listbox 我想换分... 如何用正则表达式验证时间,请高手指点 DataGrid的一个简单问题,如何用可以使回车也想tab一样,自己移动到下一个单元格。 如果截获窗体的消息 求助,多线程操作 datagridview出现错误 关于panel里面的button的问题
我这里有例子----平时我是要用到才看的。(我也不很会,下面是我的笔记 )
//下面是读EXCEL
// 要选引入 nopi
private void button1_Click(object sender, EventArgs e)
{
DataTable myT = ExcelToDataTable("c:/供应商导入模板.xls", "sheet1");
StringBuilder strs=new StringBuilder();
for (int j = 0; j < myT.Rows.Count; j++)
{
for (int i = 0; i < 8; i++)
{
strs.Append("\t");
if (myT.Rows[j][i]!= null)
{
strs.Append(myT.Rows[j][i].ToString());
}
}
strs.Append(Environment.NewLine);
}
textBox1.Text = strs.ToString();
}
public static DataTable ExcelToDataTable(string strExcelFileName, string strSheetName)
{
//源的定义
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + strExcelFileName + ";" + "Extended Properties='Excel 8.0;HDR=NO;IMEX=1';";
//Sql语句
//string strExcel = string.Format("select * from [{0}$]", strSheetName); 这是一种方法
string strExcel = "select * from [sheet1$]";
//如果只想读取前两列可以用:select * from [Sheet1$A:B]
//如果只想读取A1到B2的内容,就用:select * from [Sheet1$A1:B2]
//定义存放的数据表
DataSet ds = new DataSet();
//连接数据源
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
//适配到数据源
OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel, strConn);
adapter.Fill(ds, strSheetName);
conn.Close();
}
请看我的笔记:HSSFWorkbook hssfworkbook = new HSSFWorkbook();// 在 Excel 工作簿中建立工作表,名稱為 Sheet1
HSSFSheet sheet1 = hssfworkbook.CreateSheet("Sheet1");// 寫入資料到工作表中
sheet1.CreateRow(1).CreateCell(1).SetCellValue("何腾飞");
sheet1.CreateRow(2).CreateCell(1).SetCellValue("是个小工");// 儲存檔案
FileStream file = new FileStream(@"C:\NPOI.xls", FileMode.Create);
hssfworkbook.Write(file);
file.Close();