繁体   English   中英

当我使用Streamwriter在C#中创建Excel文件时,如何更改文本中的Excel列格式

[英]how to change excel column format in text when i use streamwriter to create a excel file in c#

当我使用streamwriter在c#中创建excel文件时,如何更改文本中的excel列格式,这是我的代码

           `string p1 = @"C:\\EXCEL\\DATA\\data" + System.DateTime.Now.ToString("dd-MM-yyyy HH-mm-ss") + ".xls";
            System.IO.FileInfo objFileInfo = new System.IO.FileInfo(p1);
            StreamWriter wr = new StreamWriter(p1);
            cmd = new OracleCommand("here is my query",con);
            DataTable dt = new DataTable();
            DataSet DS = new DataSet();
            OracleDataAdapter AD = new OracleDataAdapter(cmd);
            OracleDataAdapter da = new OracleDataAdapter(cmd);
            da.Fill(dt);
            da.Fill(DS);
            for (int i = 0; i < (DS.Tables[0].Rows.Count); i++)
                 {
                    for (int j = 0; j < dt.Columns.Count; j++)
                         {
                           if (dt.Rows[i][j] != null)
                               {
                                 wr.Write(Convert.ToString(dt.Rows[i][j]).ToString() + "\t");
                                }
                                else
                                {
                                  wr.Write("\t");
                                }
                            }
                            wr.WriteLine();
                         }`

请提前谢谢

试试此代码,您将获得解决方案

 for (var r = 0; r < dt.Rows.Count; r++)
 {
   for (var c = 0; c < dt.Columns.Count; c++)
     {
       if (dt.Columns[c].DataType.Name == "String" || dt.Columns[c].DataType.Name == "DateTime")
          wr.Write( "'" + dt.Rows[r][c].ToString().Trim());
        else
          wr.Write( dt.Rows[r][c]);
      }
  }     

我把这个作为第二个答案

private void sample()
            {

                string p1 = @"C:\\EXCEL\\DATA\\data" + System.DateTime.Now.ToString("dd-MM-yyyy HH-mm-ss") + ".xls";
                //System.IO.FileInfo objFileInfo = new System.IO.FileInfo(p1);
                //StreamWriter wr = new StreamWriter(p1);
                cmd = new OracleCommand("here is my query", con);
                DataTable dt = new DataTable();
                DataSet DS = new DataSet();
                OracleDataAdapter AD = new OracleDataAdapter(cmd);
                OracleDataAdapter da = new OracleDataAdapter(cmd);
                da.Fill(dt);
                da.Fill(DS);

                ExportToExcel(DS.Tables[0], p1);
            }   

            public void ExportToExcel( DataTable dtCollection,string savingFileName)
            {
                var ds = dtCollection;
                Microsoft.Office.Interop.Excel.Worksheet objWorkSheet1 = null;
                Microsoft.Office.Interop.Excel.Application objExcel = new Microsoft.Office.Interop.Excel.Application { Visible = false };
                Microsoft.Office.Interop.Excel.Workbooks objWorkbooks = objExcel.Workbooks;
                Microsoft.Office.Interop.Excel.Workbook objWorkbook = objWorkbooks.Add(Missing.Value);
                Microsoft.Office.Interop.Excel.Sheets objSheets = objWorkbook.Worksheets;
                Microsoft.Office.Interop.Excel.Range objCells;
                Microsoft.Office.Interop.Excel.Range myCell;
                var iCurrentRow = 10;
                var dt = ds;
                int columnsCount = dt.Columns.Count;
                objWorkSheet1 = (Microsoft.Office.Interop.Excel.Worksheet)(objSheets[1]);
                objCells = objWorkSheet1.Cells;

                for (var h = 0; h < dt.Columns.Count; h++)
                {
                    myCell = (Microsoft.Office.Interop.Excel.Range)objCells[iCurrentRow, h + 1];
                    myCell.Value2 = dt.Columns[h].ColumnName;
                }
                iCurrentRow++;
                for (var r = 0; r < dt.Rows.Count; r++)
                {
                    for (var c = 0; c < dt.Columns.Count; c++)
                    {
                        if (dt.Columns[c].DataType.Name == "String" || dt.Columns[c].DataType.Name == "DateTime")
                        {
                            myCell = (Microsoft.Office.Interop.Excel.Range)objCells[r + iCurrentRow, c + 1];
                            myCell.Value2 = "'" + dt.Rows[r][c].ToString().Trim();
                        }
                        else
                        {
                            myCell = (Microsoft.Office.Interop.Excel.Range)objCells[r + iCurrentRow, c + 1];
                            myCell.Value2 = dt.Rows[r][c];
                        }
                    }
                }
                objWorkSheet1.Cells.EntireRow.AutoFit();
                objWorkSheet1.Cells.EntireColumn.AutoFit();
                objWorkbook.SaveAs(savingFileName, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal,
                Missing.Value, Missing.Value, Missing.Value, Missing.Value, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive,
                Missing.Value, Missing.Value, Missing.Value,
                Missing.Value, Missing.Value);
                objWorkbook.Close(Missing.Value, Missing.Value, Missing.Value);
                objExcel.Quit();
            }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM