C#中修改了EXCEL文档,如何保存? 如题,保存时总会弹出对话框询问是否要保存修改的文档。怎样不出现这个提示直接保存呢?另外,如何放弃修改直接关闭excel文档? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Excel._Workbook m_objBook; ................... m_objBook.Saved = true;m_objBook.SaveCopyAs(sFilePath);保存是自动覆盖Excel.Application m_objExcel;..........................m_objExcel.Quit();System.Runtime.InteropServices.Marshal.ReleaseComObject(m_objSheet);不保存直接退出 C#这样操作Excel才是最实用的(注:office2003的Excel.dll要通过TlbImp.exe操作Excel.exe才能够得到,office2000中直接可以使用excel9.ole) #region 保存到Excel按钮事件 string filename = ""; private void button6_Click(object sender, EventArgs e) { //将模板文件复制到一个新文件中 SaveFileDialog mySave = new SaveFileDialog(); mySave.Filter = "Excel文件(*.XLS)|*.xls|所有文件(*.*)|*.*"; if (mySave.ShowDialog() != DialogResult.OK) { return; } else { filename = mySave.FileName; //将模板文件copy到新位置,建议实际开发时用相对路径,如 //Application.StartupPath.Trim()+"\\report\\normal.xls" //string filenameold = mySave.FileName; FileInfo mode = new FileInfo("d:\\normal.xls"); try { mode.CopyTo(filename, true); } catch (Exception ee) { MessageBox.Show(ee.Message); return; } } Thread thread1 = new Thread(new ThreadStart(toExcel)); thread1.Start(); } #endregion #region 临时调试将数据导入到excel private void toExcel() { //打开复制后的文件 object missing = Missing.Value; Excel.Application myExcel = new Excel.Application(); //打开新文件 myExcel.Application.Workbooks.Open(filename, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing); //将Excel显示出来 myExcel.Visible = false; //逐行写入数据,数组中第一行我列标题,忽略 int rowIndex = 1; int row_cnt = this.drugListDataGridView.Rows.Count; int col_cnt = this.drugListDataGridView.Columns.Count; // ?用于用DataGridTableStyle自定?DataGrid?。 for (int j = 0; j < col_cnt; j++) { myExcel.Cells[rowIndex, j + 1] = drugListDataGridView.Columns[j].HeaderText.ToString(); } //同?方法?理数据 //for (int i = 0; i < col_cnt; i++)//取字段名 //{ // excel.Cells[1, i + 1] = this.xT_XY_DrugLibrary.Columns[i].ColumnName.ToString(); //} rowIndex++; //这里要注意,由于DataGrid中总是要多显示一行,而最后一行中没有数据,所以在读取的时候不要读最后一行 for (int row = 0; row < row_cnt - 1; row++) { for (int col = 0; col < col_cnt; col++) { try { myExcel.Cells[rowIndex, col + 1] = drugListDataGridView.Rows[row].Cells[col].Value.ToString(); } catch { MessageBox.Show("数据导出出现异常!请重试"); return; } } rowIndex++; } //将列标题和实际内容选中 Excel.Workbook myBook = myExcel.Workbooks[1]; Excel.Worksheet mySheet = (Excel.Worksheet)myBook.Worksheets[1]; Excel.Range r = mySheet.get_Range(mySheet.Cells[3, 1], mySheet.Cells[14, 7]); r.Select(); //=====通过执行宏来为格表格加边框=======// try { myExcel.Run("宏1", missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing); } catch { } //保存修改 myBook.Save(); myExcel.Quit(); MessageBox.Show("保存成功!"); } #endregion 加上这个就可以了app.DisplayAlerts = false;想了解其它高级一些的信息,请查看http://www.cnblogs.com/linfuguo/articles/462699.html或http://www.cnblogs.com/linfuguo/archive/2006/08/19/480976.html 如何实现 QQ聊天窗口只弹一个? 打印 VS2005.net 与 VS2003.net区别在什么地方. 请问如何在DateGridView控件最后一行添加合计 请教C#中调用vc6编译的非托管dll中函数的写法??? C#中如何调用“USB虚拟打印机端口”来打印 在aps.net中使用COM出现的问题。 在C#中如何设置(更改)系统时间? C#中怎样将RichTextBox中的汉字(及全部内容)正确的写入到一个文件里 请教:关于SqlDataAdapter.Update 求解密的哈希算法例子 简单问题:tabpage的标签怎样去掉啊?就是那个切换的title
...................
m_objBook.Saved = true;
m_objBook.SaveCopyAs(sFilePath);
保存是自动覆盖Excel.Application m_objExcel;
..........................
m_objExcel.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(m_objSheet);
不保存直接退出
(注:office2003的Excel.dll要通过TlbImp.exe操作Excel.exe才能够得到,office2000中直接可以使用excel9.ole)
#region 保存到Excel按钮事件
string filename = "";
private void button6_Click(object sender, EventArgs e)
{
//将模板文件复制到一个新文件中
SaveFileDialog mySave = new SaveFileDialog();
mySave.Filter = "Excel文件(*.XLS)|*.xls|所有文件(*.*)|*.*";
if (mySave.ShowDialog() != DialogResult.OK)
{
return;
}
else
{
filename = mySave.FileName;
//将模板文件copy到新位置,建议实际开发时用相对路径,如
//Application.StartupPath.Trim()+"\\report\\normal.xls"
//string filenameold = mySave.FileName;
FileInfo mode = new FileInfo("d:\\normal.xls");
try
{
mode.CopyTo(filename, true);
}
catch (Exception ee)
{
MessageBox.Show(ee.Message);
return;
}
}
Thread thread1 = new Thread(new ThreadStart(toExcel));
thread1.Start();
}
#endregion
#region 临时调试将数据导入到excel
private void toExcel()
{
//打开复制后的文件
object missing = Missing.Value;
Excel.Application myExcel = new Excel.Application();
//打开新文件
myExcel.Application.Workbooks.Open(filename, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing);
//将Excel显示出来
myExcel.Visible = false;
//逐行写入数据,数组中第一行我列标题,忽略
int rowIndex = 1;
int row_cnt = this.drugListDataGridView.Rows.Count;
int col_cnt = this.drugListDataGridView.Columns.Count; // ?用于用DataGridTableStyle自定?DataGrid?。
for (int j = 0; j < col_cnt; j++)
{
myExcel.Cells[rowIndex, j + 1] = drugListDataGridView.Columns[j].HeaderText.ToString();
}
//同?方法?理数据
//for (int i = 0; i < col_cnt; i++)//取字段名
//{
// excel.Cells[1, i + 1] = this.xT_XY_DrugLibrary.Columns[i].ColumnName.ToString();
//}
rowIndex++;
//这里要注意,由于DataGrid中总是要多显示一行,而最后一行中没有数据,所以在读取的时候不要读最后一行
for (int row = 0; row < row_cnt - 1; row++)
{
for (int col = 0; col < col_cnt; col++)
{
try
{
myExcel.Cells[rowIndex, col + 1] = drugListDataGridView.Rows[row].Cells[col].Value.ToString();
}
catch
{
MessageBox.Show("数据导出出现异常!请重试");
return;
}
}
rowIndex++;
}
//将列标题和实际内容选中
Excel.Workbook myBook = myExcel.Workbooks[1];
Excel.Worksheet mySheet = (Excel.Worksheet)myBook.Worksheets[1];
Excel.Range r = mySheet.get_Range(mySheet.Cells[3, 1], mySheet.Cells[14, 7]);
r.Select();
//=====通过执行宏来为格表格加边框=======//
try
{
myExcel.Run("宏1", missing, missing,
missing, missing, missing, missing, missing, missing, missing,
missing, missing, missing, missing, missing, missing, missing,
missing, missing, missing, missing, missing, missing, missing,
missing, missing, missing, missing, missing, missing, missing);
}
catch
{
}
//保存修改
myBook.Save();
myExcel.Quit();
MessageBox.Show("保存成功!"); }
#endregion
app.DisplayAlerts = false;想了解其它高级一些的信息,请查看
http://www.cnblogs.com/linfuguo/articles/462699.html
或
http://www.cnblogs.com/linfuguo/archive/2006/08/19/480976.html