用c#代码导出Excel模板 10
用c#代码导出Excel1的模板,并把Excel1中sheet1的模板复制到给另一个Excel2中的sheet工作表,Excel1中的sheet1中的数据是从winfor...
用c#代码导出Excel1的模板,并把Excel1中sheet1的模板复制到给另一个Excel2中的sheet工作表,Excel1中的sheet1中的数据是从winform中导出来的,winform中一行数据就导出对应的一个Excel工作表并用到Excel1中sheet1的模板,winform中的行数是不固定的,所有说Excel1中就有一个模板sheet1,而Excel2中就有不固定数量的sheet,并且显示winform中的数据还用到Excel1中sheet1的模板。求一份c#代码。有类似要求的C#代码也可以。急!急!急!!!!!就这么多分数了,谁帮助了我就全给谁了!
展开
展开全部
以前自己写的一篇日志,希望对你有帮助!
读取:将Excel中的数据读入到 DataSet 中
using System;
using System.Collections.Generic;
using System.Text;
using System.Data.OleDb;
using System.Data;
class ExcelReader
{
private DataSet myData;
public ExcelReader(String Path)
{
String strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Path + ";Extended Properties=Excel 8.0";
OleDbConnection myConn = new OleDbConnection(strConn);
String strCom = "SELECT * FROM [Sheet1$]";
myConn.Open();
OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, myConn);
myData = new DataSet();
myCommand.Fill(myData, "[Sheet1$]");
myConn.Close();
}
public DataSet GetData()
{
return myData;
}
}
剩下的就是对 DataSet 的操作了,可根据需要进行读取。
写入:假设要写入的数据存在 String[][] myData 中
using System;
using System.Collections.Generic;
using System.Text;
class ExcelWriter
{
public ExcelWriter(String[][] myData, String Path)
{
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook workbook = excel.Application.Workbooks.Add(true);
for (int i = 0; i < myData.Length; i++)
{
String[] DataRow = myData[i];
for (int j = 0; j < DataRow.Length; j++)
{
excel.Cells[i + 1, j + 1] = DataRow[j]; //这里可换成其他数据类型
}
}
excel.DisplayAlerts = false;
workbook.Save();
excel.Save(Path);
excel.Quit();
}
}
读取:将Excel中的数据读入到 DataSet 中
using System;
using System.Collections.Generic;
using System.Text;
using System.Data.OleDb;
using System.Data;
class ExcelReader
{
private DataSet myData;
public ExcelReader(String Path)
{
String strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Path + ";Extended Properties=Excel 8.0";
OleDbConnection myConn = new OleDbConnection(strConn);
String strCom = "SELECT * FROM [Sheet1$]";
myConn.Open();
OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, myConn);
myData = new DataSet();
myCommand.Fill(myData, "[Sheet1$]");
myConn.Close();
}
public DataSet GetData()
{
return myData;
}
}
剩下的就是对 DataSet 的操作了,可根据需要进行读取。
写入:假设要写入的数据存在 String[][] myData 中
using System;
using System.Collections.Generic;
using System.Text;
class ExcelWriter
{
public ExcelWriter(String[][] myData, String Path)
{
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook workbook = excel.Application.Workbooks.Add(true);
for (int i = 0; i < myData.Length; i++)
{
String[] DataRow = myData[i];
for (int j = 0; j < DataRow.Length; j++)
{
excel.Cells[i + 1, j + 1] = DataRow[j]; //这里可换成其他数据类型
}
}
excel.DisplayAlerts = false;
workbook.Save();
excel.Save(Path);
excel.Quit();
}
}
参考资料: http://gaofeihang.blog.163.com/blog/static/8450828520102102434667/
博思aippt
2024-07-20 广告
2024-07-20 广告
作为深圳市博思云创科技有限公司的工作人员,对于Word文档生成PPT的操作,我们有以下建议:1. 使用另存为功能:在Word中编辑完文档后,点击文件->另存为,选择PowerPoint演示文稿(*.pptx)格式,即可将文档内容转换为PPT...
点击进入详情页
本回答由博思aippt提供
展开全部
LS代码不错
不过只读的话,没必要这么复杂
public void shuchu()
{
System.Data.OleDb.OleDbConnection objConn = new System.Data.OleDb.OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=..\excell.xls;Extended Properties=Excel 8.0;");
DataSet ds = new DataSet();
string TJ = "SELECT * FROM [myRange1$]";
OleDbDataAdapter da = new OleDbDataAdapter(TJ, objConn);
try
{
da.Fill(ds);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
objConn.Close();
return;
}
biao = ds.Tables[0];//将excel表中的数据读入到内存表biao中,以备后用。
objConn.Close();
}//连接并打开数据库,将数据导入内存表biao中,myRangw1为excel中工作表名。biao做查询使用。
public void chaxun(string cha)
{
dv = biao.DefaultView;
dv.RowFilter = cha;
temp = dv.ToTable();
dataGridView1.DataSource = temp;
}//cha为查询条件,将cha传递给chaxun函数以便进行查询。
这是我的代码
不过只读的话,没必要这么复杂
public void shuchu()
{
System.Data.OleDb.OleDbConnection objConn = new System.Data.OleDb.OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=..\excell.xls;Extended Properties=Excel 8.0;");
DataSet ds = new DataSet();
string TJ = "SELECT * FROM [myRange1$]";
OleDbDataAdapter da = new OleDbDataAdapter(TJ, objConn);
try
{
da.Fill(ds);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
objConn.Close();
return;
}
biao = ds.Tables[0];//将excel表中的数据读入到内存表biao中,以备后用。
objConn.Close();
}//连接并打开数据库,将数据导入内存表biao中,myRangw1为excel中工作表名。biao做查询使用。
public void chaxun(string cha)
{
dv = biao.DefaultView;
dv.RowFilter = cha;
temp = dv.ToTable();
dataGridView1.DataSource = temp;
}//cha为查询条件,将cha传递给chaxun函数以便进行查询。
这是我的代码
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
/// <summary>
/// DataSet导出数据到Excel
/// </summary>
/// <param name="ds">DataSet对象</param>
/// <returns></returns>
public static bool DataSet2Excel(DataSet ds)
{
try
{
Excel.Application myExcel = new Excel.Application();
myExcel.Application.Workbooks.Add(true);
myExcel.Visible = true;
//生成标题
for (int i = 0; i < ds.Tables[0].Columns.Count; i++)
{
myExcel.Cells[1, i + 1] = ds.Tables[0].Columns[i].Caption;
}
//填充数据
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
for (int j = 0; j < ds.Tables[0].Columns.Count; j++)
{
myExcel.Cells[i + 2, j + 1] = ds.Tables[0].Rows[i][j].ToString();
}
}
return true;
}
catch
{
return false;
}
}
/// DataSet导出数据到Excel
/// </summary>
/// <param name="ds">DataSet对象</param>
/// <returns></returns>
public static bool DataSet2Excel(DataSet ds)
{
try
{
Excel.Application myExcel = new Excel.Application();
myExcel.Application.Workbooks.Add(true);
myExcel.Visible = true;
//生成标题
for (int i = 0; i < ds.Tables[0].Columns.Count; i++)
{
myExcel.Cells[1, i + 1] = ds.Tables[0].Columns[i].Caption;
}
//填充数据
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
for (int j = 0; j < ds.Tables[0].Columns.Count; j++)
{
myExcel.Cells[i + 2, j + 1] = ds.Tables[0].Rows[i][j].ToString();
}
}
return true;
}
catch
{
return false;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我这有断代码自己用的行,里面具体的内容你改改!希望能帮到你
#region public bool SaveExcel(DataGridView paramGirdView) 保存datagridview 数据到 Excel
/// <summary>
/// 保存datagridview 数据到 Excel
/// </summary>
/// <param name="paramGirdView">datagridview</param>
/// <returns>是否成功</returns>
public bool SaveExcel(DataGridView paramGirdView)
{
if (paramGirdView.Rows.Count == 0) //判断数据是否等于0
{
return false;
}
//创建 Excel 对象
Microsoft.Office.Interop.Excel.Application myExcel = new Microsoft.Office.Interop.Excel.Application();
myExcel.Application.Workbooks.Add(true);
myExcel.Visible = true;
myExcel.Cells[1, 2] = "学生基本信息";
//生成字段名称(列名)
for (int i = 0; i < paramGirdView.ColumnCount; i++)
{
// 第二行第二列开始录入数据
myExcel.Cells[2, i + 2] = paramGirdView.Columns[i].HeaderText;
}
//填充数据
for (int i = 0; i < paramGirdView.RowCount; i++)
{
for (int j = 0; j < paramGirdView.ColumnCount; j++)
{
//判断类型是否是字符串
if (paramGirdView[j, i].ValueType == typeof(string))
{
// 第二行第二列开始录入数据
if (paramGirdView[j, i].Value != null)
{
myExcel.Cells[i + 3, j + 2] = "'" + paramGirdView[j, i].Value.ToString();
}
}
else
{
if (paramGirdView[j, i].Value != null)
{
myExcel.Cells[i + 3, j + 2] = paramGirdView[j, i].Value;
}
}
}
}
return true;
}
#endregion
#region public bool SaveExcel(DataGridView paramGirdView) 保存datagridview 数据到 Excel
/// <summary>
/// 保存datagridview 数据到 Excel
/// </summary>
/// <param name="paramGirdView">datagridview</param>
/// <returns>是否成功</returns>
public bool SaveExcel(DataGridView paramGirdView)
{
if (paramGirdView.Rows.Count == 0) //判断数据是否等于0
{
return false;
}
//创建 Excel 对象
Microsoft.Office.Interop.Excel.Application myExcel = new Microsoft.Office.Interop.Excel.Application();
myExcel.Application.Workbooks.Add(true);
myExcel.Visible = true;
myExcel.Cells[1, 2] = "学生基本信息";
//生成字段名称(列名)
for (int i = 0; i < paramGirdView.ColumnCount; i++)
{
// 第二行第二列开始录入数据
myExcel.Cells[2, i + 2] = paramGirdView.Columns[i].HeaderText;
}
//填充数据
for (int i = 0; i < paramGirdView.RowCount; i++)
{
for (int j = 0; j < paramGirdView.ColumnCount; j++)
{
//判断类型是否是字符串
if (paramGirdView[j, i].ValueType == typeof(string))
{
// 第二行第二列开始录入数据
if (paramGirdView[j, i].Value != null)
{
myExcel.Cells[i + 3, j + 2] = "'" + paramGirdView[j, i].Value.ToString();
}
}
else
{
if (paramGirdView[j, i].Value != null)
{
myExcel.Cells[i + 3, j + 2] = paramGirdView[j, i].Value;
}
}
}
}
return true;
}
#endregion
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询