QuickBooks和Sage数据导出器

许多中小企业都使用QuickBooks作为其会计模块。 同样,许多公司也使用Sage进行会计处理。 他们中的大多数人在需要从这些系统中导出数据时会遇到问题。

在线提供的许多连接器价格昂贵,无法满足确切的要求。 随附的是一些简短的代码段,这些代码段说明了如何将数据导出到CSV。 我还附加了github链接来下载代码。

SAGE和Quickbook都带有ODBC驱动程序,可以对它们进行配置和编程查询

#智者

在ODBC数据源中创建一个静默ODBC DSN。

QuickBooks

在“选项”选项卡中配置静默模式。

QuickBooks

现在,我们将使用下面的数据源加载和导出数据。

我们将使用DotNet Core将我们的代码编写为与Windows上的DSN交流的最佳语言。

我将问题分为3个部分

  1. 从数据库加载表名
  2. 为每个表加载数据集
  3. 将每个表从DataSet导出到CSV
private static List loadTableNames(string connectionString){var tableNames = new List();using (OdbcConnection connection =new OdbcConnection(connectionString)){try{connection.Open();using(DataTable tableschema = connection.GetSchema("Tables")){// first column nameforeach(DataRow row in tableschema.Rows){tableNames.Add(row["TABLE_NAME"].ToString());//Console.WriteLine(row["TABLE_NAME"].ToString());}}}catch (Exception ex){Console.WriteLine(ex.Message);}}return tableNames;}

现在我们需要编写代码以加载给定表的数据。 在这种情况下,我将使用DataSet。 有很多方法可以做到这一点。

public static DataSet GetDataSetFromAdapter(DataSet dataSet, string connectionString, string queryString){using (OdbcConnection connection =new OdbcConnection(connectionString)){OdbcDataAdapter adapter =new OdbcDataAdapter(queryString, connection);// Open the connection and fill the DataSet.try{connection.Open();adapter.Fill(dataSet);}catch (Exception ex){Console.WriteLine(ex.Message);}// The connection is automatically closed when the// code exits the using block.}return dataSet;}

最后是将所有数据导出到CSV的功能

<span id="mce_SELREST_start" style="overflow:hidden;line-height:0;"></span>private static string ConvertToCSV(DataSet objDataSet){StringBuilder content = new StringBuilder();if (objDataSet.Tables.Count >= 1){DataTable table = objDataSet.Tables[0];if (table.Rows.Count > 0){DataRow dr1 = (DataRow) table.Rows[0];int intColumnCount = dr1.Table.Columns.Count;int index=1;//add column namesforeach (DataColumn item in dr1.Table.Columns){content.Append(String.Format("\"{0}\"", item.ColumnName));if (index < intColumnCount)content.Append(",");elsecontent.Append("\r\n");index++;}//add column dataforeach (DataRow currentRow in table.Rows){string strRow = string.Empty;for (int y = 0; y <= intColumnCount - 1; y++){strRow += "\"" + currentRow[y].ToString() + "\"";if (y = 0)strRow += ",";}content.Append(strRow + "\r\n");}}}return content.ToString();}

https://github.com/ashwinrayaprolu1984/SageDataExporter.git

#QuickBooks

对于QuickBooks,我们采用相同的方法。

  1. 从文件中加载表名(Quickbooks不在其ODBC数据源中导出架构)
  2. 为每个表加载数据集
  3. 将每个表从DataSet导出到CSV

git hub下面的链接具有执行此操作的代码

https://github.com/ashwinrayaprolu1984/QuickBooksDesktopConnector.git

翻译自: https://www.javacodegeeks.com/2018/11/quickbooks-sage-data-exporter.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/344374.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php+easyui+上传文件,easyui 上传文件代码

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.IO;using BLL;using m Model;using System.Data;using System.Data.SqlClient;using System.Text;namespace Web.Handler{/// /// AddOppportunityHandler 的摘要说明/// pub…

java 8 集合分组_Java 8:按集合分组

java 8 集合分组在继续阅读Venkat Subramaniam的“ Java函数式编程 ”时&#xff0c;我到达了介绍Stream&#xff03;collect函数的那部分。 我们想收集一个人&#xff0c;按年龄分组并返回一张方便的地图&#xff08;年龄->人的名字&#xff09;。 要刷新&#xff0c;这是…

请编写一个php程序,(笔试题)php练习笔试题(一) 编写程序(请任选两题)

简答题1.写出5个以上你所知道的常用的Linux命令和它的功能cat&#xff0c;显示文件内容。cd&#xff0c;改变目录路径。cp&#xff0c;复制文件。find&#xff0c;查找文件。grep&#xff0c;搜索、过滤信息。ls&#xff0c;列出目录信息。more&#xff0c;分页显示。rm&#x…

python str translate,str.translate() --文本过滤和处理

问题: 想清除整个范围的字符&#xff0c;或者去掉音符1、使用str.translate()s python\fis\tawesome\r\n# 第一步是清理空格&#xff0c;可以先建立一个小型的转换表&#xff0c;然后使用reanslate()方法remap {ord(\t): ,ord(\f): ,ord(\r): None}a s.translate(remap)aO…

MicroProfile 2.2 BOM导入支持

MicroProfile 2.2刚刚发布&#xff0c;其中包含对Fault Tolerance&#xff0c;Open Tracing&#xff0c;Open API和Rest Client API的更新。 自2.2版以来&#xff0c;还支持使用BOM&#xff08;物料清单&#xff09;依赖项导入。 通过这种方法&#xff0c;我们可以在dependenc…

php内容缓存输出,PHP使用缓存即时输出内容(output buffering)的方法

PHP使用缓存即时输出内容(output buffering)的方法PHP使用缓存即时输出内容(output buffering)的方法。分享给大家供大家参考。具体如下&#xff1a;$buffer ini_get(output_buffering);echo str_repeat( ,$buffer1); //防止浏览器缓存ob_end_flush(); //关闭缓存for( $i1; $i…

继承能够访问父类私有字段_在单元测试中访问私有字段

继承能够访问父类私有字段首先&#xff0c;让我大声说一下&#xff0c;您需要将代码设计为可测试的&#xff0c;以便通过公共方法测试私有字段。 但是&#xff0c;&#xff08;“ buts”是人们仍在编程而不是计算机本身的原因&#xff0c;所以在这里很高兴&#xff09;有时您想…

php模拟论坛,模仿OSO的论坛(二)

模仿OSO的论坛(二)2006-10-09 00:00:00 作者&#xff1a;模仿OSO的论坛(二)read.php(用来显示相关主题内容)疑难问题主 题&#xff1a;color#993333>include "connect.inc.php";$query "select * from guestbook where id".$theme_id;$res mysql_quer…

甲骨文函数初探

我非常高兴有机会通过Cloud Native Limited Availability Program来测试Oracle功能。 去年&#xff0c;当我上次尝试在Oracle Groundbreaker APAC巡回赛中在Oracle Cloud中运行无服务器功能时&#xff0c;有两种选择。 您可以在虚拟机中运行我自己的Fn服务器&#xff0c;也可以…

oracle 邻接模型,【原创】MySQL 模拟Oracle邻接模型树形处理

数据库对层次结构的处理模型有好多种&#xff0c;可以根据自己的需求来设计模型&#xff0c;当然最简单的也是最容易设计的模型就是所谓的邻接模型。在这方面&#xff0c;其他数据库比如Oracle提数据库对层次结构的处理模型有好多种&#xff0c;可以根据自己的需求来设计模型&a…

json字符串导入oracle,如何在Oracle中将JSON字符串转换为JSON

我需要在Oracle查询中将JSON字符串转换为JSON。示例字符串&#xff1a;{"1":{"qid":1,"aid":1,"a":"Yes","isdyn":0},"2":{"qid":2,"aid":7,"a":"sdfbsjkb",&…

spring roo_使用Spring Roo进行概念验证

spring roo在Keyhole工作期间&#xff0c;我参与了许多项目&#xff0c;其中客户要求我们重写旧系统&#xff0c;同时保留其现有数据库。 有时&#xff0c;它有助于快速演示如何使用当前技术来简化开发&#xff0c;测试和维护其代码。 我发现可以创建一个快速示例&#xff08;…

【渝粤教育】电大中专药物分析技术基础作业 题库

1.《中国药典》规定“称定”时&#xff0c;指称取重量应准确至所取重量的 A.10% B.1.95&#xff5e;2.05g C.百分之一 D.1.5&#xff5e;2.5g E.千分之一 错误 正确答案&#xff1a;左边查询 学生答案&#xff1a;未作答 2.2℃&#xff5e;10℃指 A.密闭 B.密封 C.阴凉处 D.冷处…

oracle虚拟机怎么装系统,Virtualbox怎么安装系统 VirtualBox虚拟机安装Win8系统教程 (3)...

三、对新建的虚拟机做重要的设定&#xff1a;1、在Oracle VM VirtualBox里面点击下刚才建好的虚拟机&#xff0c;然后点下上面的黄色图标“设置”&#xff0c;或者右键菜单里面点击设置也可以(快捷键是CtrlS)Oracle VM VirtualBox虚拟机设置2、在出来的设置页面里面&#xff0c…

JDK 12的Files.mismatch方法

JDK 12向Files类引入了一种新方法。 方法Files.mismatch(Path,Path)已通过JDK-8202302引入JDK 12&#xff0c;并在JDK 12 Early Access Build 20 &#xff08;支持新{systemProperty} Javadoc标记的相同早期访问版本&#xff09;中可用 。 JDK-8202302 [“用于比较文件的&…

【渝粤教育】电大中专计算机网络基础 (2)作业 题库

1通信中产生和发送信息的一端叫做&#xff08;&#xff09;。 A信源 B信宿 C信道 D噪声 正确 正确答案&#xff1a;左边查询 学生答案&#xff1a;A 2通信中接收信息的一端叫做&#xff08;&#xff09;。 A信源 B信宿 C信道 D噪声 正确 正确答案&#xff1a;左边查询 学生答案…

oracle xe gentoo,Oracle在gentoo下安装

补充:解决ORACLE10G安装界面中文乱码问题&#xff0c;修改以下变量使安装界面为英文。export LC_CTYPEen_US.UTF-8以下为原文1.OS:Gentoo-linux-2.6.23-rc5Oracle:Oracle Database 10g Release 2 (10.2.0.1.0) for Linux x86下载地址&#xff1a;2.使用管理员账户建立Oracle用户…

【渝粤教育】电大中专跨境电子商务理论与实务 (11)作业 题库

1.在按照交易主体类型中&#xff0c;&#xff08; &#xff09;面对的最终客户为企业或集团客户&#xff0c;提供企业、产品、服务等相关信息。 A.O2O跨境电商或平台 B.B2B跨境电商或平台 C.B2C跨境电商或平台 D.C2C跨境电商或平台 错误 正确答案&#xff1a;左边查询 学生答案…

【渝粤题库】陕西师范大学209041 金融工程学 作业(专升本)

《金融工程学》作业 一、选择题 1.证券投资收益最大化和风险最小化这两个目标&#xff08; &#xff09;. A.可以同时实现&#xff1b; B.是一致的&#xff1b; C.是相互冲突的&#xff1b; D.大多数情况下可以同时实现. 2.金融工程中&#xff0c;通常用&#xff08; &#xff…

php 排序不影响索引,为什么不能通过索引避免排序操作呢??

谢谢各位的回复,尤其是棉花糖ONE!忘了说了,我的数据库版本是:10.2.0.4 的刚才做了一个10053事件.CASE WHEN STOCK_NUM>0 THEN 1 ELSE 0 END1 确实被重写成了STOCK_NUM>0.在这种情况下:SELECT * FROM(select /* INDEX(zsj_test) */pricefrom zsj_testwhere productnamerpa…