public bool InsertValue(string book, object value)
{
object bkObj = book;
if (wordApp.ActiveDocument.Books.Exists(book))
{
wordApp.ActiveDocument.Books.get_Item(ref bkObj).Select();
Thread app = new Thread(new ParameterizedThreadStart(Copy));
app.ApartmentState = ApartmentState.STA;
app.Start(value);
Thread.Sleep(200);
wordApp.Selection.PasteAndFormat(WdRecoveryType.wdFormatOriginalFormatting);
return true;
}
return false;
} static void Copy(object value)
{
Clipboard.SetDataObject(value, false);
}这是按照网络上的解决方法写的,不过虽然不报错了
但是导出的文档里,插入的内容全是标题所示的内容
解决方案 »
- 请教一个找点并缝合图片的问题
- 关于GOOGLE地图if (GBrowserIsCompatible()) 不兼容IE的问题
- 为什么我做的网站,在ie8中,没有纵向滚动条?
- 用什么方式写日志性能比较高呢?大家都说用XML有性能问题,也看了看这方面的操作。
- 那位兄弟给我一个查询的例子,最最简单的,俺刚学,谢谢!
- DataList图片单击与跳转页面接收问题
- 现在开发网站用ASP.NET2005可以吗,服务器支持吗?
- 一个datagrid的问题,小弟百思不得其解,如能解决就散分了
- 怎么在新页中提示?比喻说我在一个页面中点击"AddNew",在另一个空白页面中提示:"Company Code cannot be blank!"
- 如何动态绑定类的属性和控件值
- vs2005 ajax webserver json 页面参数是二维json数据怎么才能传到wevserver
- s2008怎么在附加到进程调试的时候不启动asp.net development server
现在我也遇到这个问题了。在aspx的后台代码中调用了COM组件,用于导出到Excel,提示报错:
System.Threading.ThreadStateException:
在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。
请确保您的 Main 函数带有 STAThreadAttribute 标记。
这个问题在C# winform下很简单就能解决:
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
......程序代码
}
或者像1楼一样,指定线程的状态即可:
Thread app = new Thread(new ParameterizedThreadStart(Copy));
Thread.ApartmentState = ApartmentState.STA;
app.Start(value); 但是这是web页啊,找了好久都没找到办法解决,哎!
知道的,说个办法,感谢!