Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
crower
3 / 2 / 2
Регистрация: 26.10.2015
Сообщений: 265
Завершенные тесты: 3
1

Как сделать чтобы под каждый столбец отводилось заданное количество символов

19.12.2016, 15:28. Просмотров 342. Ответов 3
Метки нет (Все метки)

Текст берется из dgv.
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
private void ToWord(DataGridView dgv,string filename,string sHeaders)
        {
          //  conn_to_sql.DoSQL()
            string stOutput = "";
 
             sHeaders = sHeaders+ " \n";
 
            for(int j = 0; j < dgv.Columns.Count; j++)
            {
                sHeaders = sHeaders.ToString() + Convert.ToString(dgv.Columns[j].HeaderText) + "\t";
 
            }
            stOutput += sHeaders + "\r\n";
 
            for(int i = 0; i < dgv.RowCount - 1; i++)
            {
                string stLine = "";
                for (int j = 0; j < dgv.Rows[i].Cells.Count; j++)
                    stLine = stLine.ToString() + Convert.ToString(dgv.Rows[i].Cells[j].Value) + "\t";
                stOutput += stLine + "\r\n";
            }
            Encoding utf16 = Encoding.GetEncoding(1254);
            byte[] output = utf16.GetBytes(stOutput);
            FileStream fs = new FileStream(filename, FileMode.Create);
            BinaryWriter bw = new BinaryWriter(fs);
            bw.Write(output, 0, output.Length);
            bw.Close();
            fs.Close();
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2016, 15:28
Ответы с готовыми решениями:

Как сделать так, чтобы каждый споллер появлялся под своей кнопкой
Здравствуйте! На страничке был такой глюк - при изменении размера страничку кнопки на ней...

Как сделать, чтобы изображение на экране занимало заданное количество пикселей?
Необходимо, чтобы квадрат, созданный в OpenGL с координатами (1,1,z), (-1,1,z), (-1,-1,z) и...

Как сделать так, чтобы программы выводила количество символов во втором слове?
Как сделать так, чтобы программы выводила количество символов во втором слове? using System;...

как вывести заданное количество символов
Как вывести заданное количество символов. Пробовал (&quot;SELECT id,name,mini_text...

Строка: как сделать так чтобы в строке из x символов, найти подстроку из n символов...
Подскажите пожалуйста, как сделать так чтобы в строке из x символов, найти подстроку из n символов...

3
OwenGlendower
Супер-модератор
Эксперт .NET
10707 / 9157 / 3900
Регистрация: 17.03.2014
Сообщений: 18,316
Записей в блоге: 1
Завершенные тесты: 2
23.12.2016, 06:38 2
crower, скажи "нет" конкатенации строк. Лучше сразу записывать данные в поток. Что касается добавления пробелов, то это можно сделать с помощью метода PadRight или форматированного вывода
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
private void ToWord(DataGridView dgv, string filename)
{
    int[] maxLenghts = new int[dgv.Columns.Count];
    for(int i = 0; i < dgv.RowCount - 1; i++)
    {
        for (int j = 0; j < dgv.Rows[i].Cells.Count; j++)
        {
            int len = dgv.Rows[i].Cells[j].Value.ToString().Length;
            if (len > maxLenghts[i]) maxLenghts[i] = len;
        }
        writer.WriteLine();
    }
 
    int[] maxLenghts = new int[dgv.Columns.Count];
    using (var fstream = File.Create(filename))
    using (var writer = new StreamWriter(fstream, Encoding.GetEncoding(1254)))
    {
        for(int j = 0; j < dgv.Columns.Count; j++)
        {
            if (j > 0) writer.Write("\t");
            writer.Write(dgv.Columns[j].HeaderText.PadRight(maxLenghts[i]));
        }
        writer.WriteLine();
        for(int i = 0; i < dgv.RowCount - 1; i++)
        {
            for (int j = 0; j < dgv.Rows[i].Cells.Count; j++)
            {
                if (j > 0) writer.Write();
                writer.Write(dgv.Rows[i].Cells[j].Value.ToString().PadRight(maxLenghts[i]));
            }
            writer.WriteLine();
        }
    }
}
0
crower
3 / 2 / 2
Регистрация: 26.10.2015
Сообщений: 265
Завершенные тесты: 3
23.12.2016, 17:34  [ТС] 3
Цитата Сообщение от OwenGlendower Посмотреть сообщение
скажи "нет" конкатенации строк.
В целях повышения производительности?
0
OwenGlendower
Супер-модератор
Эксперт .NET
10707 / 9157 / 3900
Регистрация: 17.03.2014
Сообщений: 18,316
Записей в блоге: 1
Завершенные тесты: 2
23.12.2016, 17:35 4
crower, именно так.
0
23.12.2016, 17:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.12.2016, 17:35

Как сделать чтобы проверялся весь столбец
Дан прямоугольный массив А. Получить номера столбцов, элементы которых являются частью...

Отсортировать каждый четный столбец матрицы по не убыванию, а каждый нечетный столбец - по возрастанию
Дана целочисленная прямоугольная матрица размера MxN. Отсортировать каждый столбец матрицы с четным...

Как сделать чтобы текст выводился не в строчку а в столбец?
создал бд в PHPMYADMIN, в бд текст в столбец а когда вывожу на сайт текст выводится в строчку,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru