C#WPF – 将SQLite数据库复制到Excel

嗨,大家好,我目前正在运行一个C#项目,它处理大量的数据并将其存储在SQLite数据库中。 不过,我想从数据库中导出这些文件到一个简单的Excel工作表,例如创build一个文件,其中数据库中的每个表是Excel中的工作表,只是一个普通的副本。

目前我正在用.csv streamwriter做同样的事情,而且速度很慢,因为我的数据量是140000个。 这意味着它将需要复制整个表格或按块进行。

我没有find任何代码片段如何在c#中使用sqlite做到这一点。 你有什么想法,我怎么能做到这一点? 如果可能不复杂,我在编程方面比较新。 提前致谢。

我从来没有在SQLite这样做,我也认为直接输出总是更好,但我很好奇这一点。

所以我写了这个尝试:

using System; using System.Data.SQLite; using Excel = Microsoft.Office.Interop.Excel; namespace ExcelSqlite { internal class Program { private static void Main(string[] args) { 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); string cs = "URI=file:test.db"; string data = String.Empty; int i = 0; int j = 0; using (SQLiteConnection con = new SQLiteConnection(cs)) { con.Open(); string stm = "SELECT * FROM Contacts"; using (SQLiteCommand cmd = new SQLiteCommand(stm, con)) { using (SQLiteDataReader rdr = cmd.ExecuteReader()) { while (rdr.Read()) // Reading Rows { for (j = 0; j <= rdr.FieldCount - 1; j++) // Looping throw colums { data = rdr.GetValue(j).ToString(); xlWorkSheet.Cells[i + 1, j + 1] = data; } i++; } } } con.Close(); } xlWorkBook.SaveAs("sqliteToExcel.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue); xlWorkBook.Close(true, misValue, misValue); xlApp.Quit(); releaseObject(xlWorkSheet); releaseObject(xlWorkBook); releaseObject(xlApp); } private static void releaseObject(object obj) { try { System.Runtime.InteropServices.Marshal.ReleaseComObject(obj); obj = null; } catch (Exception ex) { obj = null; } finally { GC.Collect(); } } } } 

希望如此,这将会引导你走向正确的方向。