kaliprasad123 Ответов: 2

Взаимодействие Excel с настройкой ширины исключений с#


I am trying to control the excel application via WPF project.

var xla = new Microsoft.Office.Interop.Excel.Application();

xla.Width = 400; // This line is throwing the below exception.

System.Runtime.InteropServices.COMException was unhandled
  HResult=-2146827284
  Message=Exception from HRESULT: 0x800A03EC
  Source=Microsoft.Office.Interop.Excel
  ErrorCode=-2146827284
  StackTrace:
       at Microsoft.Office.Interop.Excel.ApplicationClass.set_Width(Double RHS)
       at EmbedExcel1.Form1.button1_Click(Object sender, EventArgs e) in d:\Test Projects\EmbedExcel1\EmbedExcel1\Form1.cs:line 27
       at System.Windows.Forms.Control.OnClick(EventArgs e)
       at System.Windows.Forms.Button.OnClick(EventArgs e)
       at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
       at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       at System.Windows.Forms.Control.WndProc(Message& m)
       at System.Windows.Forms.ButtonBase.WndProc(Message& m)
       at System.Windows.Forms.Button.WndProc(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
       at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
       at System.Windows.Forms.Application.Run(Form mainForm)
       at EmbedExcel1.Program.Main() in d:\Test Projects\EmbedExcel1\EmbedExcel1\Program.cs:line 19
       at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
       at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException: 
thanks in advance.


Что я уже пробовал:

I am trying to control the excel application via WPF project.

var xla = new Microsoft.Office.Interop.Excel.Application();

xla.Width = 400;

Mehdi Gholam

Я не думаю, что у него есть свойство "ширина".

kaliprasad123

Я уверен, что у него есть свойство width, он отлично работает несколько раз, через несколько дней одна и та же строка дает исключение. Выход из системы и вход в систему временно устраняют проблему.

madhav_jain

вы не можете установить ширину, потому что это свойство только для чтения... Если вы хотите обновить с помощью u нужно реализовать интерфейс _Application для обновления ширины

kaliprasad123

привет Мадхав,

Я почти уверен, что ширина не читается только потому, что она работает несколько раз. Интересно, как реализовать интерфейс _Application? Не могли бы вы написать к нему какой-нибудь код wrt.

Patrice T

Я использовал "ширину" в Столбцах, а не в приложении

2 Ответов

Рейтинг:
2

Richard MacCutchan

Приложение.Ширина это свойство только для чтения как четко указано в документации: _Приложение.Свойство Width (Microsoft.Офис.Взаимодействие.Превосходить)[^].


kaliprasad123

привет Ричард,

предоставленной вами ссылке четко написано, что он имеет GET и set.
двойной ширины { получить; набор; }

есть еще предложения?

Richard MacCutchan

Извините, я неправильно понял.

Richard MacCutchan

Лучшее, что я могу предложить, - это погуглить этот код ошибки и посмотреть, есть ли у кого-нибудь какие-нибудь идеи.

kaliprasad123

Привет Ричард,

спасибо за ответ, это первое, что я сделал, когда получил ошибку. Никто не дал решения. После того, как пользователь вышел из системы и вошел в нее, он работает так, как ожидалось, в течение короткого времени.

спасибо
калипрасад

Рейтинг:
1

kaliprasad123

Before setting Width property you should set xla.WindowState = xlNormal