C#对Excel/word的操作实现 毕业设计
用C#实现对Excel/word的基本操作,例如文件的打开、数据的导入、导出以及数据同步更新等功能。同时希望各位仁兄详述一下这个毕业设计应该怎么做,呵呵静候佳音!...
用C#实现对Excel/word的基本操作,例如文件的打开、数据的导入、导出以及数据同步更新等功能。
同时希望各位仁兄详述一下这个毕业设计应该怎么做,呵呵
静候佳音! 展开
同时希望各位仁兄详述一下这个毕业设计应该怎么做,呵呵
静候佳音! 展开
3个回答
展开全部
这个你可以调用office的api对Excel等进行操作操作,
if (tempds == null)
{
MessageBoxEx.Show("要导出的数据为空!!!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
else
{
Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
if (xlApp == null)
{
MessageBoxEx.Show("无法创建Excel对象,可能您的电脑未安装Excel", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
try
{
if (xlApp == null)
{
MessageBoxEx.Show("无法创建Excel对象,可能您的电脑未安装Excel", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
xlApp.Visible = false;
bool fileSaved = false;
Microsoft.Office.Interop.Excel.Workbooks workbooks = xlApp.Workbooks;
Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];//取得sheet1
Microsoft.Office.Interop.Excel.Range range;
long totalCount = tempds.Tables[0].Rows.Count;
long rowRead = 0;
float percent = 0;
for (int i = 0; i < tempds.Tables[0].Columns.Count; i++)
{
worksheet.Cells[1, i + 1] = tempds.Tables[0].Columns[i].ColumnName;
//range = (Microsoft.Office.Interop.Excel.Range)worksheet.Cells[2, i + 1];
//range.Interior.ColorIndex = 15;
//range.Font.Bold = true;
}
//写入数值
int[] stringFlags = new int[100];
for (int r = 0; r < tempds.Tables[0].Rows.Count; r++)
{
for (int i = 0; i < tempds.Tables[0].Columns.Count; i++)//判断有多少是字符类型
{
if (r == 0)
{
string type = tempds.Tables[0].Columns[i].DataType.ToString();
if (type == "System.String")
{
stringFlags[i] = 1;
range = (Microsoft.Office.Interop.Excel.Range)worksheet.Cells[r + 2, i + 1];
range.NumberFormatLocal = "@";
}
worksheet.Cells[r + 2, i + 1] = tempds.Tables[0].Rows[r][i];
}
else
{
if (stringFlags[i] == 1)//对于字符类型的处理
{
range = (Microsoft.Office.Interop.Excel.Range)worksheet.Cells[r + 2, i + 1];
range.NumberFormatLocal = "@";
}
worksheet.Cells[r + 2, i + 1] = tempds.Tables[0].Rows[r][i];
}
}
rowRead++;
percent = ((float)(100 * rowRead)) / totalCount;
//lbInfo.Text = "正在导出数据[" + percent.ToString("0.00") + "%]...";
//Microsoft.Office.Interop.Excel.Application.DoEvents();
}
if (saveFileName != "")
{
try
{
workbook.Saved = true;
workbook.SaveCopyAs(saveFileName);
fileSaved = true;
}
catch (Exception ex)
{
fileSaved = false;
MessageBoxEx.Show("导出文件时出错,文件可能正被打开!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
}
else
{
fileSaved = false;
}
}
catch (Exception ee)
{
MessageBoxEx.Show("导出发生错误,错误信息为:" + ee.Message.ToString(), "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
finally
{
xlApp.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp);
xlApp = null;
}
}
这个是对excel 的写入。
if (tempds == null)
{
MessageBoxEx.Show("要导出的数据为空!!!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
else
{
Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
if (xlApp == null)
{
MessageBoxEx.Show("无法创建Excel对象,可能您的电脑未安装Excel", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
try
{
if (xlApp == null)
{
MessageBoxEx.Show("无法创建Excel对象,可能您的电脑未安装Excel", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
xlApp.Visible = false;
bool fileSaved = false;
Microsoft.Office.Interop.Excel.Workbooks workbooks = xlApp.Workbooks;
Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];//取得sheet1
Microsoft.Office.Interop.Excel.Range range;
long totalCount = tempds.Tables[0].Rows.Count;
long rowRead = 0;
float percent = 0;
for (int i = 0; i < tempds.Tables[0].Columns.Count; i++)
{
worksheet.Cells[1, i + 1] = tempds.Tables[0].Columns[i].ColumnName;
//range = (Microsoft.Office.Interop.Excel.Range)worksheet.Cells[2, i + 1];
//range.Interior.ColorIndex = 15;
//range.Font.Bold = true;
}
//写入数值
int[] stringFlags = new int[100];
for (int r = 0; r < tempds.Tables[0].Rows.Count; r++)
{
for (int i = 0; i < tempds.Tables[0].Columns.Count; i++)//判断有多少是字符类型
{
if (r == 0)
{
string type = tempds.Tables[0].Columns[i].DataType.ToString();
if (type == "System.String")
{
stringFlags[i] = 1;
range = (Microsoft.Office.Interop.Excel.Range)worksheet.Cells[r + 2, i + 1];
range.NumberFormatLocal = "@";
}
worksheet.Cells[r + 2, i + 1] = tempds.Tables[0].Rows[r][i];
}
else
{
if (stringFlags[i] == 1)//对于字符类型的处理
{
range = (Microsoft.Office.Interop.Excel.Range)worksheet.Cells[r + 2, i + 1];
range.NumberFormatLocal = "@";
}
worksheet.Cells[r + 2, i + 1] = tempds.Tables[0].Rows[r][i];
}
}
rowRead++;
percent = ((float)(100 * rowRead)) / totalCount;
//lbInfo.Text = "正在导出数据[" + percent.ToString("0.00") + "%]...";
//Microsoft.Office.Interop.Excel.Application.DoEvents();
}
if (saveFileName != "")
{
try
{
workbook.Saved = true;
workbook.SaveCopyAs(saveFileName);
fileSaved = true;
}
catch (Exception ex)
{
fileSaved = false;
MessageBoxEx.Show("导出文件时出错,文件可能正被打开!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
}
else
{
fileSaved = false;
}
}
catch (Exception ee)
{
MessageBoxEx.Show("导出发生错误,错误信息为:" + ee.Message.ToString(), "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
finally
{
xlApp.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp);
xlApp = null;
}
}
这个是对excel 的写入。
展开全部
你的这些功能都很建单。先把界面做出来再一个个实现功能,你所说的每个功能网上都能找到详细的资料。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2010-12-28
展开全部
小妹妹,大家的时间有限,你却给个10分就让别人帮你,有点说不过去。哈哈 ... 如果百度10分值0.01RMB的话,我帮你计算一下,外面一个毕业设计大概800~2000的价格,那么你的百度分起码要80万分以上才行啊。不然,人家不会把时间耽误在你这的。
只是发表一下看法。呵呵 ...
谢谢
只是发表一下看法。呵呵 ...
谢谢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询