powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Копирование данных с DaraGrit в Excel (кодировка)
8 сообщений из 8, страница 1 из 1
Копирование данных с DaraGrit в Excel (кодировка)
    #35454251
Chaki_Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Люди, помогите, такая проблема. Когда у меня данные отображены в DataGrid в Windows Form, то данные на русском языке отборажаются верно. Когда я копирую эти данные в Excel, долго думает и потом все цифры остаются в порядке, вот русские буквы превращщяются типа в cO???????/TD>
или ?. 23 Oђ, ?0, ?24. Вероятно проблема с кодировкой. Где и как можно ее настроить, чтобы данные отображались корректно? Только главное скажите что и где менять. (Дополнение: DataGrod ничем не настраивается, у меня завпрос делается на серваке процедурой, а в просто потом результирующая таблица вставляется в DataGrid, по-другому не смог просто при join-ить таблицы, и сделал так :).
...
Рейтинг: 0 / 0
Копирование данных с DaraGrit в Excel (кодировка)
    #35468459
Chaki_Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще хочу добавить, что когда я копирую данные из DataGrid через Ctrl+C и вставляю в Word или Excel, то данные отображаются неверно (англ. символы и цифры корректно). Но при копировании аналогичным способом в Блокнот, как ни странно, русские символы видны отлично. Если использовать импорт в Excel, то кодировка аналогично не срабатывает, хотя символы ведут себя немного по-другому... Интересно, что никто не встречался с такой проблемой, или может кто просто не понял о чем я пишу?? Если нужно, я уточню
...
Рейтинг: 0 / 0
Копирование данных с DaraGrit в Excel (кодировка)
    #35468534
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1.поставь excel 2007 )
2.нужно через класс clipboard перекодировать данные самому.
...
Рейтинг: 0 / 0
Копирование данных с DaraGrit в Excel (кодировка)
    #35471565
Sergey S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пробовал я и через клипбоард - нормально, тока один глюк там есть, вернее два - первый - это с кодировкой, лечиться:
DG.SelectAll();
Clipboard.Clear();
if (DG.GetClipboardContent()!=null )
{
Clipboard.SetDataObject(DG.GetClipboardContent());
Clipboard.GetData(DataFormats.Text);
IDataObject dt = Clipboard.GetDataObject();
if (dt.GetDataPresent(typeof(string)))
{
string tb = (string)(dt.GetData(typeof(string)));
ASCIIEncoding ee = new ASCIIEncoding();
Encoding myEncoding = Encoding.GetEncoding(1251);
byte[] abyDataStr = new byte[tb.Length];
abyDataStr = myEncoding.GetBytes(tb);
Clipboard.SetDataObject(myEncoding.GetString(abyDataStr));
}

rng = excel.get_Range(ws.Cells[Position, 1], ws.Cells[Position, 1]);
ws.Paste(rng, false);
Collumn = 0;
//Clipboard.Clear();

excel.get_Range("A1", Type.Missing).EntireColumn.Delete(Excel.XlDeleteShiftDirection.xlShiftToLeft);//Column.Delete(object Shift
}
второй - это то что он строки пустые вставляет - 'ckb ентеров у тебя в ячейке на гриде много
...
Рейтинг: 0 / 0
Копирование данных с DaraGrit в Excel (кодировка)
    #35471575
Sergey S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот, а сейчас отказался от этого клипбоарда - генерю хмл файл и его открыаю экселем, дописываю шапку и все - получается без глюков в виде пустых строк посреди тысячи записей и быстрее чем по ячейкам бродить раз в 20
...
Рейтинг: 0 / 0
Копирование данных с DaraGrit в Excel (кодировка)
    #35471808
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
то есть думаешь,метод который генерит xml,не пробегает по всем ячейкам да? :)

у меня вот так:

Код: plaintext
1.
                Clipboard.SetText(Format(Me._Interval.Left, "dd.MM.yyyy") & vbTab & Format(Me._Interval.Right, "dd.MM.yyyy") & vbCrLf & info.ToString, TextDataFormat.UnicodeText)

Код: plaintext
'info переменная в которой собран текст с грида
...
Рейтинг: 0 / 0
Копирование данных с DaraGrit в Excel (кодировка)
    #35478948
Chaki_Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ, я бы вам хотел сказать огромнейшее спасибо за подсказки, т.к. у меня все заработало, и отлично работает, когда я копирую данные с DataGridView в буфер обмена, и вставляю в Excel (2007). Теперь тот код, который у меня работает:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
SqlDataAdapter sdaAdapter = new SqlDataAdapter(cmd);
              DataTable dtDataTable = new DataTable();
              sdaAdapter.Fill(dtDataTable);
              DataGridView dgv1 = new DataGridView();
              dgv1 = dataGridView1;
              dgv1.DataSource = dtDataTable;


              dgv1.SelectAll();
              Clipboard.Clear();
              if (dgv1.GetClipboardContent() != null)
              {
                  Clipboard.SetDataObject(dgv1.GetClipboardContent());
                  Clipboard.GetData(DataFormats.Text);
                  IDataObject dt = Clipboard.GetDataObject();
                  if (dt.GetDataPresent(typeof (string)))
                  {
                      string tb = (string) (dt.GetData(typeof (string)));
                      //ASCIIEncoding ee = new ASCIIEncoding();
                      Encoding myEncoding = Encoding.GetEncoding( 1251 );
                      byte[] abyDataStr = new byte[tb.Length];
                      abyDataStr = myEncoding.GetBytes(tb);
                      Clipboard.SetDataObject(myEncoding.GetString(abyDataStr));
                  }

Эту часть кода я отбросил в процессе того как я разбирался, т.к. просто хотел проверить, будет ли у меня выбрасываться ошибка (т.е. у меня все работает без этогой части:

Код: plaintext
1.
2.
3.
4.
5.
6.
                  rng = excel.get_Range(ws.Cells[Position,  1 ], ws.Cells[Position,  1 ]);
                  ws.Paste(rng, false);
                  Collumn =  0 ;
                  //Clipboard.Clear();
excel.get_Range("A1",Type.Missing).EntireColumn
.Delete(Excel.XlDeleteShiftDirection.xlShiftToLeft);//Column.Delete(object Shift

И еще, я хотел что сказать, что пустых строк в Excel не вставляется. Работает все просто отлично, а то я уже месяц бился об стену... Еще раз всем спасибо!!!
...
Рейтинг: 0 / 0
Копирование данных с DaraGrit в Excel (кодировка)
    #35501404
Mairos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
// export to CSV
public void ExportToCSV(string csvFileName, DataGridView dgvName)
{
int vRow = 1;
StreamWriter sw = new StreamWriter(csvFileName);
for (int vCol = 0; vCol < dgvName.ColumnCount; vCol++)
{
sw.Write(dgvName.Columns[vCol].Name + ";");
}
sw.WriteLine("");
while(vRow < dgvName.RowCount)
{
for (int vCol = 1; vCol <= dgvName.ColumnCount; vCol++)
{
sw.Write(dgvName.Rows[vRow - 1].Cells[vCol - 1].Value + ";");
}
sw.WriteLine("");
vRow++;
}
sw.Close();
}
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Копирование данных с DaraGrit в Excel (кодировка)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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