就是写一个windows窗体程序,不是在excel里操作
假设有一个EXCEL文件(2003以内版本),里面只有一个sheet,是标准的二维表,假设共A(字串),B(浮点),C(浮点)三列,第一行为标题,数据行数不定。
想读取这个文件,然后假设计算第4列的数据为 对应的行D1=B1/C列之和 这样
在窗体的datagrid里将A,B,C,D列全部显示出来,并且另存为一个EXCEL文件这样
是否可以求代码或者成熟的源码
很少写关于EXCEL的东西
假设有一个EXCEL文件(2003以内版本),里面只有一个sheet,是标准的二维表,假设共A(字串),B(浮点),C(浮点)三列,第一行为标题,数据行数不定。
想读取这个文件,然后假设计算第4列的数据为 对应的行D1=B1/C列之和 这样
在窗体的datagrid里将A,B,C,D列全部显示出来,并且另存为一个EXCEL文件这样
是否可以求代码或者成熟的源码
很少写关于EXCEL的东西
解决方案 »
- 关于toolStrip工具栏背景色问题
- 水晶报表从来没做过,给我看下
- 错误:设计器加载程序未提供根组件,但没有指出原因。
- 急,在线等,C#中 已知星期,如何求当月的第一个给定的这个星期的日期
- 如何获取客户端的IP,包括内网IP和外网IP
- “DM.DAL.DeviceBaseDAL”不会实现接口成员“DM.DAL.IDeviceDAL.AddOut(string, string, string, string, System.DateTime, string)”
- **************你不就是个打杂的吗,有什么牛逼的阿,还说我不像话,去你大爷的************
- 如何判断网卡是static还是动态分配?
- 救急,VS打不开Web项目了
- 请问c#中调用带指针的函数要怎么传参数进去
- (求助)3ds文件如何转换成.x文件?
- 咨询C#开发桌面应用经验
/// 读取EXCEL表格中的数据,通过Fill方法直接填充dataset,针对规则EXCEL
/// </summary>
/// <param name="path">excel表格的路径</param>
/// <returns></returns>
public static DataSet GetExcelData(string path)
{
//存放数据集
DataSet ds = new DataSet(); if (!CheckSetupExcel())
{
CommUtil.ShowInfoMsg("系统检测本机未安装Office软件,不能支持导出Excel。");
}
else
{
//连接字符串
string ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'"; //HDR=YES第一行是数据,NO第一行是标题 //连接对象
OleDbConnection con = new OleDbConnection(ConnectionString); //查询语句
string strQuery = "SELECT * FROM [sheet1$]"; //读取sheet1里的数据 try
{
//打开连接
con.Open(); //数据适配器
OleDbDataAdapter oda = new OleDbDataAdapter(strQuery, con); //填充ds
oda.Fill(ds, "table");
}
catch (OleDbException ex)
{
//抛出异常
CommUtil.ShowErrMsg(CommUtil.GetExceptionMsg(ex));
}
finally
{
//关闭连接
con.Close();
}
} return ds;
}[/align]
OleDbConnection MyConn = new OleDbConnection(StrConn);
MyConn.Open();
string StrCmd = "select * from [sheet1$]";
OleDbDataAdapter MyCommand = new OleDbDataAdapter(StrCmd,MyConn);
DataSet Ds = new DataSet();
MyCommand.Fill(Ds,"NameTB");
DataTable dt=Ds.Tables["NameTB"]
string StrConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + FilePath + ";Extended Properties='Excel 8.0;HDR=NO'";
OleDbConnection MyConn = new OleDbConnection(StrConn);
MyConn.Open();
string StrCmd = "select * from [sheet1$]";
OleDbDataAdapter MyCommand = new OleDbDataAdapter(StrCmd,MyConn);
DataSet Ds = new DataSet();
MyCommand.Fill(Ds,"NameTB");
DataTable dt=Ds.Tables["NameTB"]
using Excel = Microsoft.Office.Interop.Excel;
using Microsoft.Office.Core;
class excel
{
string myFileName;
Excel.Application myExcel;
Excel.Workbook myWorkBook;
//打开excel文件
public void Open(string fileName)
{
myExcel = new Excel.Application();
myWorkBook = myExcel.Workbooks.Add(fileName);
myFileName = fileName;
}
//在指定位置写入字符串
public void WriteData(string data, int row, int column)
{
myExcel.Cells[row, column] = data;
}
}
//保存文件到指定位置
public bool SaveAs(string fileName)
{
try
{
myWorkBook.SaveAs(fileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Excel.XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
return true; }
catch (Exception ex)
{
return false; }
}