读书人

C# 向Excel文件中增添数据

发布时间: 2013-10-14 12:54:46 作者: rapoo

C# 向Excel文件中添加数据
本帖最后由 kingchane 于 2013-10-09 21:51:40 编辑 问题是这样的:
xls文件中以日期为序,已存有很多列的数据,还有几个根据该数据绘制的图表。在程序中,我先读取了该xls文件,存入到System.Data.DataSet的变量中。具体的实现代码是:


/// <summary>
/// 读取Excel文件,内容存储在DataSet中
/// </summary>
/// <param name="opnFileName">Excel文件路径</param>
/// <returns>DataSet</returns>
public static DataSet ExcelToDataSet(string FileName)
{
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FileName + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\"";
OleDbConnection objConn = new OleDbConnection(strConn);
DataSet ds = new DataSet();
try
{
objConn.Open();

System.Data.DataTable schemaTable = objConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);

string tableName = schemaTable.Rows[0][2].ToString().Trim(); //获取 Excel 的表名,默认值是sheet1
string strSql = "select * from [" + tableName + "]";
OleDbCommand objCmd = new OleDbCommand(strSql, objConn);
OleDbDataAdapter myData = new OleDbDataAdapter(strSql, objConn);
myData.Fill(ds, tableName);//填充数据
}
catch (Exception ex)
{
Console.WriteLine("错误!:" + ex.Message.ToString());
}
finally
{
objConn.Close();
objConn.Dispose();
}
return ds;
}



上述代码其实就是读Excel文件到DataSet,程序没有什么问题。
现在我需要将未更新的若干日期的数据添加到上述xls文件的末尾,而不必将DataSet和未更新的那些数据全部写入到一个新的文件中,因为我还要那些图表进行分析。

这个问题应该不难,但最近把自己困住好几天了,平时还要上班没多少时间认真从头开始,希望有网友帮忙解决下吧? c# excel 添加数据
[解决办法]
OleDbConnection? 支持select,当然也支持insert
[解决办法]
这个就简单了啊 等于就是向EXCEL里面写数据 可以直接用NPOI 也可以直接微软。net的
下面代码
是直接用net的 注意要先添加引用
最后行最后列都
EXCEL单元格也给你了 这个代码直接在使用中
我截取了前部分

OpenFileDialog2.Filter = "EXCEL文件
[解决办法]
*.xlsx;*.xls;*.xlsm
[解决办法]
所有文件(*.*)
[解决办法]
*.*";
OpenFileDialog2.FilterIndex = 1;
if (OpenFileDialog2.ShowDialog()==DialogResult.OK)
{
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();//引用Excel对象
Microsoft.Office.Interop.Excel.Workbook workbook = excel.Workbooks.Add(this.OpenFileDialog2.FileName);


excel.DisplayAlerts = false;
excel.UserControl = true;
excel.Visible = false;
Microsoft.Office.Interop.Excel.Worksheet sheet = workbook.Worksheets.get_Item(1) as Microsoft.Office.Interop.Excel.Worksheet;
int nRows = sheet.UsedRange.Rows.Count;
int nCols=sheet.UsedRange.Columns.Count;
//string content= sheet.Cells[3, 1].value; //第三行第一列值不从0开始

读书人网 >C#

热点推荐