Nishikant Tayade Ответов: 1

Удалите лишнее пространство в ячейке excel в C#


Я создаю файл excel с помощью
Microsoft.Office.Interop.Excel;


и заполнение листа excel с использованием данных из базы данных(SQLite).

Все вещи работают отлично,только проблема в том, что данные внутри ячейки
это как

1001 1002 1003 1004
1 6/15/2018 3:34:20 101 &ЛТ;---&ГТ;&ЛТ;---&ГТ;&ЛТ;---&ГТ;&ЛТ;---&ГТ; --&ГТ;оставляя дополнительное пространство здесь.


может ли кто-нибудь, пожалуйста, выяснить, в чем проблема с кодом, вызывающим их?

Что я уже пробовал:

public void ExportToExcel()
      {
          DirectoryInfo di = System.IO.Directory.CreateDirectory("C:\\ProgramData\\tthhSensorCalibrator");
          string logFilename = System.IO.Path.Combine(Environment.GetFolderPath(
            Environment.SpecialFolder.CommonApplicationData), di + "\\databaseFile.db3");
          System.Data.SQLite.SQLiteConnection con = new System.Data.SQLite.SQLiteConnection(@"Data source="+ logFilename);
          System.Data.SQLite.SQLiteCommand com = new System.Data.SQLite.SQLiteCommand(con);
          com.CommandText = "Select * FROM Log";      // Select all rows from our database table

          int i = 0;
          int j = 0;
          string data = null;
          Excel.Application xlApp;
          Excel.Workbook xlWorkBook;
          Excel.Worksheet xlWorkSheet;
          object misValue = System.Reflection.Missing.Value;


          xlApp = new Excel.Application();
          xlWorkBook = xlApp.Workbooks.Add(misValue);
          xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);



          SQLiteDataAdapter dscmd = new SQLiteDataAdapter(com.CommandText, con);
          DataSet ds = new DataSet();
          dscmd.Fill(ds);



          for (i = 0; i <= ds.Tables[0].Rows.Count - 1; i++)
          {
              for (j = 0; j <= ds.Tables[0].Columns.Count - 1; j++)
              {
                  data = ds.Tables[0].Rows[i].ItemArray[j].ToString();

                  xlWorkSheet.Cells[i + 1, j + 1] = data;

              }
          }
          SaveFileDialog saveFileDialog1 = new SaveFileDialog();

          saveFileDialog1.InitialDirectory = @"Documents\";

          saveFileDialog1.Title = "Save text Files";

         // saveFileDialog1.CheckFileExists = true;

          //saveFileDialog1.CheckPathExists = true;

          saveFileDialog1.DefaultExt = "txt";

          saveFileDialog1.Filter = "Excel files (*.xls)|*.xls";

          saveFileDialog1.FilterIndex = 2;

          saveFileDialog1.RestoreDirectory = true;
          string filename="";
          if (saveFileDialog1.ShowDialog() == DialogResult.OK)

          {

              filename = saveFileDialog1.FileName;

          }
          xlWorkBook.SaveAs(filename, Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);

          //xlWorkBook.SaveCopyAs(filename);
          xlWorkBook.Close(true, misValue, misValue);
          xlApp.Quit();

          releaseObject(xlWorkSheet);
          releaseObject(xlWorkBook);
          releaseObject(xlApp);

          MessageBox.Show("Excel file created");




          void releaseObject(object obj)
          {
              try
              {
                  System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
                  obj = null;
              }
              catch (Exception ex)
              {
                  obj = null;
                  MessageBox.Show("Exception Occured while releasing object " + ex.ToString());
              }
              finally
              {
                  GC.Collect();
              }
          }
      }

 }

1 Ответов

Рейтинг:
11

Aleksandr Malyshev

Попробовать это:

xlWorkSheet.Cells[i + 1, j + 1] = data.Trim();