powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Конвертация xls в csv
1 сообщений из 1, страница 1 из 1
Конвертация xls в csv
    #40030480
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Подскажите метод конвертации файла xls в csv.

В интернете нашел следующий метод, но он сработал плохо. У меня в файле кириллица, которая не корректно отобразилась:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
        public void ConvertXlsInCSV(string way, string filename, string typeFile,string tableName, int worksheetNumber)
        {

            var DataTableConnect = CreateConnectExcelStrBuilder(way, filename, typeFile, "NO", true, true);
            using (OleDbConnection connection = new OleDbConnection(DataTableConnect.Item2.ConnectionString))
            {
                // get schema, then data
                var dt = new DataTable();
                try
                {
                    connection.Open();
                    var schemaTable = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
                    if (schemaTable.Rows.Count < worksheetNumber) throw new ArgumentException("The worksheet number provided cannot be found in the spreadsheet");
                    string worksheet = schemaTable.Rows[worksheetNumber - 1]["table_name"].ToString().Replace("'", "");
                    string sql = String.Format("select * from [{0}]", worksheet);
                    var da = new OleDbDataAdapter(sql, connection);
                    da.Fill(dt);
                }
                catch (Exception e)
                {
                    // ???
                    throw e;
                }
                finally
                {
                    connection.Close();
                }

                // write out CSV data
                using (var wtr = new StreamWriter(way + filename + "." + "csv"))
                {
                    foreach (DataRow row in dt.Rows)
                    {
                        bool firstLine = true;
                        foreach (DataColumn col in dt.Columns)
                        {
                            if (!firstLine) { wtr.Write(","); } else { firstLine = false; }
                            var data = row[col.ColumnName].ToString().Replace("\"", "\"\"");
                            wtr.Write(String.Format("\"{0}\"", data));
                        }
                        wtr.WriteLine();
                    }
                }
            }

        }       
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Конвертация xls в csv
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (1): Анонимы (1)
Читали форум (2): Анонимы (2)
Пользователи онлайн (34): Анонимы (32), Bing Bot, Yandex Bot 1 мин.
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]