Что нового

Сохранение Excel в CSV

Andrewslim

Новичок
Сообщения
8
Репутация
0
Дайте пожалуйста код для сохранения Excel в CSV. В Excel два столбика и много строчек.
 

ra4o

AutoIT Гуру
Сообщения
1 101
Репутация
222
Всё равно сколько столбиков и строчек, в таком виде откроет и сохранит весь первый лист
Код:
#include <excel.au3>

$sExcel = @ScriptDir & '\1.xlsx'
$sCSV = @ScriptDir & '\1.csv'

$oExcel = _Excel_Open(False)
$oExcelBook = _Excel_BookOpen($oExcel, $sExcel)
_Excel_BookSaveAs($oExcelBook, $sCSV, $xlCSV)
_Excel_Close($oExcel)
 
Автор
A

Andrewslim

Новичок
Сообщения
8
Репутация
0
Спасибо!
Сообщение автоматически объединено:

Всё равно сколько столбиков и строчек, в таком виде откроет и сохранит весь первый лист
Код:
#include <excel.au3>

$sExcel = @ScriptDir & '\1.xlsx'
$sCSV = @ScriptDir & '\1.csv'

$oExcel = _Excel_Open(False)
$oExcelBook = _Excel_BookOpen($oExcel, $sExcel)
_Excel_BookSaveAs($oExcelBook, $sCSV, $xlCSV)
_Excel_Close($oExcel)

Эта функция не рабочая!
Вот такой вариант рабочий:

Код:
Local $sWorkbook = @ScriptDir & "Excel.csv"
_Excel_BookSaveAs($oWorkbook, $sWorkbook, $xlCSV, True)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookSaveAs Example 1", "Ошибка при сохранении книги в  '" & $sWorkbook & "'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookSaveAs Example 1", "Книга успешно сохранена как  '" & $sWorkbook & "'.")
ShellExecute($sWorkbook)


Но у меня сейчас другая проблема, надо сохранить CSV в кодировке UTF8 без Bom, но не получается.
 
Последнее редактирование:

ra4o

AutoIT Гуру
Сообщения
1 101
Репутация
222
Эта функция не рабочая!
Вы так категорично утверждаете ,Вы пробовали ? Что не работает ?
В Вашем варианте есть параметр $bOverWrite True - перезапись файла , в моём нет , так как я не предполагал, что файл с именем таким , как сохраняем csv уже существует.
Вот такой вариант рабочий:
И к такому пути , например нет вопросов ?
 
Автор
A

Andrewslim

Новичок
Сообщения
8
Репутация
0
В Вашем варианте есть параметр $bOverWrite True - перезапись файла
Это так задумано)))
Сообщение автоматически объединено:

Вы так категорично утверждаете ,Вы пробовали ? Что не работает ?
В Вашем варианте есть параметр $bOverWrite True - перезапись файла , в моём нет , так как я не предполагал, что файл с именем таким , как сохраняем csv уже существует.
Извиняюсь! Код рабочий, видимо я коряво вставил!
Сообщение автоматически объединено:

Всё равно сколько столбиков и строчек, в таком виде откроет и сохранит весь первый лист
Код:
#include <excel.au3>

$sExcel = @ScriptDir & '\1.xlsx'
$sCSV = @ScriptDir & '\1.csv'

$oExcel = _Excel_Open(False)
$oExcelBook = _Excel_BookOpen($oExcel, $sExcel)
_Excel_BookSaveAs($oExcelBook, $sCSV, $xlCSV)
_Excel_Close($oExcel)
А куда файлы сохранятся? не могу найти.
 
Последнее редактирование:

ra4o

AutoIT Гуру
Сообщения
1 101
Репутация
222
Странно, процесс прошел, а файла нет.
Возможно ошибка в пути, для проверки на ошибки можно после функции написать:
Код:
If @error Then MsgBox(48,'Ошибка !','Ошибка ...название фунуции... # '&@Error)
 
Верх