C #, создать Excel 97-2003 (. XLS) Interop - PullRequest
3 голосов
/ 17 декабря 2010

с использованием Excel = Microsoft.Office.Interop.Excel;

Мне нужно сохранить файл Excel (.xls) из моего представления данных.Все работает нормально, запись данных, изменение формата ячейки и т. Д. Но при сохранении документа появляется проблема.

string format = "yyyy_MM_dd_HH-mm";
string pathtoexport = @"C:\DM\SMS\Przychodzace\Znalezione_SMS_" + DateTime.Now.ToString(format) + ".xls";
oWB.SaveAs(pathtoexport, Excel.XlFileFormat.xlWorkbookNormal, missing, missing,
      false, false, Excel.XlSaveAsAccessMode.xlNoChange,
      missing, missing, missing, missing, missing);
    }

Ну, несколько дней назад он работал, но теперь он может сказать только

HRESULT: 0x800A03EC "}

Мне нужны файлы .xls для импорта в SQL. Любые советы?


До того, как проблема возникла в Excel.XlFileFormat.xlWorkbookDefault, когда Iv изменил ее на Normalбыло хорошо. Теперь это не работает. Много времени, чтобы справиться с этим самостоятельно с Google, но я потерпел неудачу.

oWB.SaveAs(MyFile + @"C:\SMS\XMLCopy.xls",
      Excel.XlFileFormat.xlWorkbookNormal, missing, missing,
      false, false, Excel.XlSaveAsAccessMode.xlNoChange,
      missing, missing, missing, missing, missing);

Ответы [ 5 ]

3 голосов
/ 17 декабря 2010
 string format = "yyyy_MM_dd_HH-mm";
        string pathtoexport = "C:\\DM\\SMS\\Przychodzace\\Znalezione_SMS_" + DateTime.Now.ToString(format) + ".xls";

        oWB.SaveAs(pathtoexport, Excel.XlFileFormat.xlWorkbookNormal, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Excel.XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); 

Теперь это работает. Спасибо за помощь.

2 голосов
/ 28 марта 2012

Попробуйте с Excel.XlFileFormat.xlWorkbookDefault

0 голосов
/ 17 декабря 2010

Если вы / ваш клиент можете себе позволить, есть Aspose.Cells , который отлично подходит для генерации документов Excel с нуля, без необходимости установки Office на компьютере.

С другой стороны, решение стоит денег.

0 голосов
/ 17 декабря 2010

Похоже, конфликт версий Interop.Вы испытываете проблему на той же машине, на которой она работала, или перешли на другую?Если вы находитесь на том же пути, попробуйте отследить и выяснить какие-либо изменения или обновления.Если вы работаете с другой версией, убедитесь, что у вас установлена ​​правильная версия.

Это может звучать глупо, но я столкнулся со всевозможными странностями при переходе от dev -> test -> prod из-за несоответствийокружения.

Если вы этого еще не сделали, попробуйте удалить ссылку из проекта и повторно применить ее.

Это также может быть связано с разрешениями (или их отсутствием).Вы пытались создать простой текстовый файл из того же фрагмента кода?

0 голосов
/ 17 декабря 2010

Я не вижу ничего явно неправильного в вашем коде.Возможно ли, что есть какая-то проблема с доступом к этому пути?Если вы попытаетесь сохранить файл вручную по этому точному пути (при условии, что вы вошли в систему под той же учетной записью, под которой запущен процесс взаимодействия), это сработает?

В противном случае вы используете какой-то видФайл шаблона Excel или что-то, что могло быть повреждено?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...