应用程序创建excel的代码如下所示
Excel.Application xlApp = new Excel.Application();
Excel.Workbook xlBook;
Excel.Worksheet xlSheet;
xlApp.DisplayAlerts = false;
object missing = Missing.Value; xlBook = xlApp.Workbooks.Add(true);
for (int i = 0; i < ds.Tables.Count; i++)
{
int rowIndex = 1;
int colIndex = 0; System.Data.DataTable Table = ds.Tables[i];
xlSheet = (Excel.Worksheet)xlApp.Worksheets.Add(missing, missing, missing, missing);
xlSheet.Name = Table.TableName; foreach (DataColumn Col in Table.Columns)
{
colIndex = colIndex + 1;
xlApp.Cells[rowIndex, colIndex] = Col.ColumnName;
} foreach (DataRow Row in Table.Rows)
{
rowIndex = rowIndex + 1; colIndex = 0;
foreach (DataColumn Col in Table.Columns)
{
colIndex = colIndex + 1;
xlApp.Cells[rowIndex, colIndex] = Row.ItemArray[colIndex - 1];
}
}
xlSheet.SaveAs(saveFileName, missing, missing, missing, missing, missing, missing, missing, missing, missing);
} m_objBook.SaveAs(@"C:\Documents and Settings\shiyunxia\桌面\Book4.xls", m_objOpt, m_objOpt,
m_objOpt, m_objOpt, m_objOpt, Excel.XlSaveAsAccessMode.xlNoChange, m_objOpt, m_objOpt,
m_objOpt, m_objOpt,m_objOpt);
m_objBook.Close(false, m_objOpt, m_objOpt);
m_objExcel.Quit();问题:
程序正运行到上述创建代码部分,如果用鼠标打开任何excel文档,则当前该被打开的excel文档内容会被被复制到新建的excel中,也即新建的excel会含打开excel文档的内容.
Excel.Application xlApp = new Excel.Application();
Excel.Workbook xlBook;
Excel.Worksheet xlSheet;
xlApp.DisplayAlerts = false;
object missing = Missing.Value; xlBook = xlApp.Workbooks.Add(true);
for (int i = 0; i < ds.Tables.Count; i++)
{
int rowIndex = 1;
int colIndex = 0; System.Data.DataTable Table = ds.Tables[i];
xlSheet = (Excel.Worksheet)xlApp.Worksheets.Add(missing, missing, missing, missing);
xlSheet.Name = Table.TableName; foreach (DataColumn Col in Table.Columns)
{
colIndex = colIndex + 1;
xlApp.Cells[rowIndex, colIndex] = Col.ColumnName;
} foreach (DataRow Row in Table.Rows)
{
rowIndex = rowIndex + 1; colIndex = 0;
foreach (DataColumn Col in Table.Columns)
{
colIndex = colIndex + 1;
xlApp.Cells[rowIndex, colIndex] = Row.ItemArray[colIndex - 1];
}
}
xlSheet.SaveAs(saveFileName, missing, missing, missing, missing, missing, missing, missing, missing, missing);
} m_objBook.SaveAs(@"C:\Documents and Settings\shiyunxia\桌面\Book4.xls", m_objOpt, m_objOpt,
m_objOpt, m_objOpt, m_objOpt, Excel.XlSaveAsAccessMode.xlNoChange, m_objOpt, m_objOpt,
m_objOpt, m_objOpt,m_objOpt);
m_objBook.Close(false, m_objOpt, m_objOpt);
m_objExcel.Quit();问题:
程序正运行到上述创建代码部分,如果用鼠标打开任何excel文档,则当前该被打开的excel文档内容会被被复制到新建的excel中,也即新建的excel会含打开excel文档的内容.
解决方案 »
- 急求Nhibernae2.0.1.4000对应版本的NHibernate.JetDriver.dll
- 请教一个问题,如何对Dictionary或Idictionary中的内容进行排序,多谢
- 送分题!
- 如何高效清除XML文档每个节点值开始的换行?
- 取随机数的时候,有什么办法 让某个区域的值相对多点?比如(1,1000)取随机数,但1~100的次数多于其他?
- 我需要在网络中用一个连接按顺序传送多段字节块,在传送每一个字节块后等待对方的确认,在C#.Net/socket中我该如何做?
- 关于货币格式的问题
- 兄弟在down vs2005 时总是让输入信用卡号,虽然是0元,当卡号输不对也不让下,怎么办呀!兄弟们情赐教!
- 莫名其妙就出问题了
- 请教显示两个winform的问题。
- C#简单画图刷新功能!
- 动态实例化
但是修改之后还有一个严重的问题是:在创建期间如果不操作打开的文档没有任何问题,但是如果对打开的excel文档做任何操作,程序会报异常.
修改之后的代码:
Excel.Application xlApp = new Excel.Application();
Excel.Workbook xlBook;
Excel.Worksheet xlSheet;
xlApp.DisplayAlerts = false;
object missing = Missing.Value; xlBook = xlApp.Workbooks.Add(true);
for (int i = 0; i < ds.Tables.Count; i++)
{
int rowIndex = 1;
int colIndex = 0; System.Data.DataTable Table = ds.Tables[i];
// 修改
xlSheet = (Excel.Worksheet)xlBook.Worksheets.Add(missing, missing, missing, missing);
xlSheet.Name = Table.TableName; foreach (DataColumn Col in Table.Columns)
{
colIndex = colIndex + 1;
// 修改
xlSheet.Cells[rowIndex, colIndex] = Col.ColumnName;
} foreach (DataRow Row in Table.Rows)
{
rowIndex = rowIndex + 1; colIndex = 0;
foreach (DataColumn Col in Table.Columns)
{
colIndex = colIndex + 1;
// 修改
xlSheet.Cells[rowIndex, colIndex] = Row.ItemArray[colIndex - 1];
}
}
}
// 修改
xlBook.SaveAs(saveFileName, missing, missing, missing, missing, missing, missing, missing, missing, missing);
xlBook.Close(false, m_objOpt, m_objOpt);
......
xlApp.Quit();
http://blog.csdn.net/downmoon/archive/2009/01/16/3796652.aspx