はじめに
この記事では、Excel(.xlsx)
ファイルをD
言語で作成する方法について、書きます。
dub
パッケージを作成する際に、エラーが発生した場合の回避策についても、情報提供します。
※エラーはWindows
環境でVisual Studio
(MSBuild
)を使用した場合に発生しました。
XLSXファイルを作成するためのdubパッケージ
以下のdub
パッケージが提供されています。
dexcel
xlsxd
xlsxio-d
xlsxwriter
この記事では、xlsxd
を使用します。
開発環境
xlsxd
パッケージは、内部でlibxlsxwriterを利用しています。
libxlsxwriter
をビルドするために、Visual Studio
が必要になります。
- DMD v2.105.3
- Build Tools for Visual Studio 2022 → インストール手順
xlsxd、libxlsxwriterのビルド
xlsxd
パッケージを作成する際に、下記エラーが発生しました。
libxlsxwriter
のビルド処理でエラーとなり、xlsxwriter.lib
が生成されないのが原因です。
D:\Dev> dub build --build=release --single writeexcel.d
Fetching xlsxd 4.0.4 (getting selected version)
Starting Performing "release" build using D:\App\Dev\dmd2\windows\bin64\dmd.exe for x86_64.
Building xlsxd 4.0.4: building configuration [library]
Pre-build Running commands
x64 libxlsxwriter does not exist
'cmake' is not recognized as an internal or external command,
operable program or batch file.
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\source\libxlsxd\worksheet.d(208,14): Deprecation: reference to local variable `this` assigned to non-scope parameter `wsf` calling `this`
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\source\libxlsxd\worksheet.d(212,17): Deprecation: reference to local variable `this` assigned to non-scope parameter `wsf` calling `this`
Building writeexcel ~master: building configuration [application]
Linking writeexcel
LINK : fatal error LNK1104: ファイル 'xlsxwriter.lib' を開くことができません。
Error: linker exited with status 1104
Error D:\App\Dev\dmd2\windows\bin64\dmd.exe failed with exit code 1.
まずは、libxlsxwriter
のビルドを先に進めます。
Developer Command Prompt for VS 2022
を立ち上げます。
ビルドを実行するとC:\Users\ユーザ名\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter
にbuild_x64
というディレクトリが作成されます。
再ビルド時にbuild_x64
ディレクトリが存在するとエラーになるため、削除します。
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd> windepbuild.bat x64
x64 libxlsxwriter does not exist
サブディレクトリまたはファイル build_x64 は既に存在します。
Developer Command Prompt for VS 2022(ビルド失敗例2)
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd> windepbuild.bat x64
x64 libxlsxwriter does not exist
-- Building for: Visual Studio 17 2022
CMake Deprecation Warning at CMakeLists.txt:88 (cmake_minimum_required):
Compatibility with CMake < 3.5 will be removed from a future version of
CMake.
Update the VERSION argument <min> value or use a ...<max> suffix to tell
CMake that the project does not need compatibility with older versions.
-- Selecting Windows SDK version 10.0.22621.0 to target Windows 10.0.19045.
-- The C compiler identification is MSVC 19.38.33130.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/VC/Tools/MSVC/14.38.33130/bin/Hostx64/x64/cl.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- The CXX compiler identification is MSVC 19.38.33130.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/VC/Tools/MSVC/14.38.33130/bin/Hostx64/x64/cl.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done (16.0s)
-- Generating done (0.1s)
-- Build files have been written to: C:/Users/user1/AppData/Local/dub/packages/xlsxd/4.0.4/xlsxd/libxlsxwriter/build_x64
MSBuild のバージョン 17.8.3+195e7f5a3 (.NET Framework)
1>Checking Build System
Building Custom Rule C:/Users/user1/AppData/Local/dub/packages/xlsxd/4.0.4/xlsxd/libxlsxwriter/CMakeLists.txt
app.c
chart.c
chartsheet.c
content_types.c
core.c
custom.c
drawing.c
format.c
hash_table.c
packager.c
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\include\xlsxwriter\worksheet.h(1,1): warning
C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 [C:\Users\user1\AppData\Local\du
b\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\build_x64\xlsxwriter.vcxproj]
(ソース ファイル '../src/app.c' をコンパイルしています)
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\include\xlsxwriter\workbook.h(815,1): warning
C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 [C:\Users\user1\AppData\Local\d
ub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\build_x64\xlsxwriter.vcxproj]
(ソース ファイル '../src/app.c' をコンパイルしています)
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\include\xlsxwriter\worksheet.h(1,1): warning
C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 [C:\Users\user1\AppData\Local\du
b\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\build_x64\xlsxwriter.vcxproj]
(ソース ファイル '../src/chartsheet.c' をコンパイルしています)
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\include\xlsxwriter\worksheet.h(1,1): warning
C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 [C:\Users\user1\AppData\Local\du
b\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\build_x64\xlsxwriter.vcxproj]
(ソース ファイル '../src/core.c' をコンパイルしています)
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\include\xlsxwriter\workbook.h(815,1): warning
C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 [C:\Users\user1\AppData\Local\d
ub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\build_x64\xlsxwriter.vcxproj]
(ソース ファイル '../src/core.c' をコンパイルしています)
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\include\xlsxwriter\worksheet.h(1,1): warning
C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 [C:\Users\user1\AppData\Local\du
b\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\build_x64\xlsxwriter.vcxproj]
(ソース ファイル '../src/packager.c' をコンパイルしています)
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\include\xlsxwriter\workbook.h(815,1): warning
C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 [C:\Users\user1\AppData\Local\d
ub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\build_x64\xlsxwriter.vcxproj]
(ソース ファイル '../src/packager.c' をコンパイルしています)
relationships.c
shared_strings.c
styles.c
theme.c
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\src\theme.c(1,1): warning C4819: ファイルは、 現在のコード
ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 [C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.
0.4\xlsxd\libxlsxwriter\build_x64\xlsxwriter.vcxproj]
utility.c
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\src\theme.c(39,65): error C2059: 構文エラー: '>' [
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\build_x64\xlsxwriter.vcxproj]
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\src\theme.c(39,66): error C2001: 定数が 2 行目に続いて
います。 [C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\build_x64\xlsxwriter.vcxproj]
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\src\theme.c(40,56): error C2001: 定数が 2 行目に続いて
います。 [C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\build_x64\xlsxwriter.vcxproj]
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\src\theme.c(41,68): error C2001: 定数が 2 行目に続いて
います。 [C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\build_x64\xlsxwriter.vcxproj]
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\src\theme.c(73,66): error C2001: 定数が 2 行目に続いて
います。 [C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\build_x64\xlsxwriter.vcxproj]
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\src\theme.c(74,56): error C2001: 定数が 2 行目に続いて
います。 [C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\build_x64\xlsxwriter.vcxproj]
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\src\theme.c(75,68): error C2001: 定数が 2 行目に続いて
います。 [C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\build_x64\xlsxwriter.vcxproj]
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\include\xlsxwriter\worksheet.h(1,1): warning
C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 [C:\Users\user1\AppData\Local\du
b\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\build_x64\xlsxwriter.vcxproj]
(ソース ファイル '../src/utility.c' をコンパイルしています)
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\include\xlsxwriter\workbook.h(815,1): warning
C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 [C:\Users\user1\AppData\Local\d
ub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\build_x64\xlsxwriter.vcxproj]
(ソース ファイル '../src/utility.c' をコンパイルしています)
workbook.c
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\include\xlsxwriter\worksheet.h(1,1): warning
C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 [C:\Users\user1\AppData\Local\du
b\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\build_x64\xlsxwriter.vcxproj]
(ソース ファイル '../src/workbook.c' をコンパイルしています)
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\include\xlsxwriter\workbook.h(815,1): warning
C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 [C:\Users\user1\AppData\Local\d
ub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\build_x64\xlsxwriter.vcxproj]
(ソース ファイル '../src/workbook.c' をコンパイルしています)
worksheet.c
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\include\xlsxwriter\worksheet.h(1,1): warning
C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 [C:\Users\user1\AppData\Local\du
b\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\build_x64\xlsxwriter.vcxproj]
(ソース ファイル '../src/worksheet.c' をコンパイルしています)
xmlwriter.c
ioapi.c
zip.c
コードを生成中...
コンパイル中...
iowin32.c
tmpfileplus.c
コードを生成中...
ビルド失敗例2では、theme.c
でエラーが出ています。
ソースコードの中身を見ると、韓国文字と中国文字が混ざったUTF-8
ファイルでこのあたりの文字コードをMSBuild
が正しく処理できないようです。
"<a:font script=\"Hang\" typeface=\"맑은 고딕\"/>",
"<a:font script=\"Hans\" typeface=\"宋体\"/>",
"<a:font script=\"Hant\" typeface=\"新細明體\"/>",
対処方法として、theme.c
をVisual Studio
のC
コンパイラが対応しているファイル形式(BOM
付きのUTF-8
)に保存しなおします。
その後、再ビルドを実行するとうまくいきました。
Developer Command Prompt for VS 2022(ビルド成功例)
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd>windepbuild.bat x64
x64 libxlsxwriter does not exist
-- Building for: Visual Studio 17 2022
CMake Deprecation Warning at CMakeLists.txt:88 (cmake_minimum_required):
Compatibility with CMake < 3.5 will be removed from a future version of
CMake.
Update the VERSION argument <min> value or use a ...<max> suffix to tell
CMake that the project does not need compatibility with older versions.
-- Selecting Windows SDK version 10.0.22621.0 to target Windows 10.0.19045.
-- The C compiler identification is MSVC 19.38.33130.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/VC/Tools/MSVC/14.38.33130/bin/Hostx64/x64/cl.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- The CXX compiler identification is MSVC 19.38.33130.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/VC/Tools/MSVC/14.38.33130/bin/Hostx64/x64/cl.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done (11.4s)
-- Generating done (0.0s)
-- Build files have been written to: C:/Users/user1/AppData/Local/dub/packages/xlsxd/4.0.4/xlsxd/libxlsxwriter/build_x64
MSBuild のバージョン 17.8.3+195e7f5a3 (.NET Framework)
1>Checking Build System
Building Custom Rule C:/Users/user1/AppData/Local/dub/packages/xlsxd/4.0.4/xlsxd/libxlsxwriter/CMakeLists.txt
app.c
chart.c
chartsheet.c
content_types.c
core.c
custom.c
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\include\xlsxwriter\worksheet.h(1,1): warning
C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 [C:\Users\user1\AppData\Local\du
b\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\build_x64\xlsxwriter.vcxproj]
(ソース ファイル '../src/app.c' をコンパイルしています)
drawing.c
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\include\xlsxwriter\workbook.h(815,1): warning
C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 [C:\Users\user1\AppData\Local\d
ub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\build_x64\xlsxwriter.vcxproj]
(ソース ファイル '../src/app.c' をコンパイルしています)
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\include\xlsxwriter\worksheet.h(1,1): warning
C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 [C:\Users\user1\AppData\Local\du
b\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\build_x64\xlsxwriter.vcxproj]
(ソース ファイル '../src/chartsheet.c' をコンパイルしています)
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\include\xlsxwriter\worksheet.h(1,1): warning
C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 [C:\Users\user1\AppData\Local\du
b\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\build_x64\xlsxwriter.vcxproj]
(ソース ファイル '../src/core.c' をコンパイルしています)
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\include\xlsxwriter\workbook.h(815,1): warning
C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 [C:\Users\user1\AppData\Local\d
ub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\build_x64\xlsxwriter.vcxproj]
(ソース ファイル '../src/core.c' をコンパイルしています)
format.c
hash_table.c
packager.c
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\include\xlsxwriter\worksheet.h(1,1): warning
C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 [C:\Users\user1\AppData\Local\du
b\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\build_x64\xlsxwriter.vcxproj]
(ソース ファイル '../src/packager.c' をコンパイルしています)
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\include\xlsxwriter\workbook.h(815,1): warning
C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 [C:\Users\user1\AppData\Local\d
ub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\build_x64\xlsxwriter.vcxproj]
(ソース ファイル '../src/packager.c' をコンパイルしています)
relationships.c
shared_strings.c
styles.c
theme.c
utility.c
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\src\theme.c(39,5): warning C4566: ユニバーサル文字名 '
\uB9D1' によって表示されている文字は、現在のコード ページ (932) で表示できません [C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwr
iter\build_x64\xlsxwriter.vcxproj]
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\src\theme.c(39,5): warning C4566: ユニバーサル文字名 '
\uC740' によって表示されている文字は、現在のコード ページ (932) で表示できません [C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwr
iter\build_x64\xlsxwriter.vcxproj]
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\src\theme.c(39,5): warning C4566: ユニバーサル文字名 '
\uACE0' によって表示されている文字は、現在のコード ページ (932) で表示できません [C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwr
iter\build_x64\xlsxwriter.vcxproj]
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\src\theme.c(39,5): warning C4566: ユニバーサル文字名 '
\uB515' によって表示されている文字は、現在のコード ページ (932) で表示できません [C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwr
iter\build_x64\xlsxwriter.vcxproj]
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\src\theme.c(73,5): warning C4566: ユニバーサル文字名 '
\uB9D1' によって表示されている文字は、現在のコード ページ (932) で表示できません [C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwr
iter\build_x64\xlsxwriter.vcxproj]
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\src\theme.c(73,5): warning C4566: ユニバーサル文字名 '
\uC740' によって表示されている文字は、現在のコード ページ (932) で表示できません [C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwr
iter\build_x64\xlsxwriter.vcxproj]
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\src\theme.c(73,5): warning C4566: ユニバーサル文字名 '
\uACE0' によって表示されている文字は、現在のコード ページ (932) で表示できません [C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwr
iter\build_x64\xlsxwriter.vcxproj]
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\src\theme.c(73,5): warning C4566: ユニバーサル文字名 '
\uB515' によって表示されている文字は、現在のコード ページ (932) で表示できません [C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwr
iter\build_x64\xlsxwriter.vcxproj]
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\include\xlsxwriter\worksheet.h(1,1): warning
C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 [C:\Users\user1\AppData\Local\du
b\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\build_x64\xlsxwriter.vcxproj]
(ソース ファイル '../src/utility.c' をコンパイルしています)
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\include\xlsxwriter\workbook.h(815,1): warning
C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 [C:\Users\user1\AppData\Local\d
ub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\build_x64\xlsxwriter.vcxproj]
(ソース ファイル '../src/utility.c' をコンパイルしています)
workbook.c
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\include\xlsxwriter\worksheet.h(1,1): warning
C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 [C:\Users\user1\AppData\Local\du
b\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\build_x64\xlsxwriter.vcxproj]
(ソース ファイル '../src/workbook.c' をコンパイルしています)
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\include\xlsxwriter\workbook.h(815,1): warning
C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 [C:\Users\user1\AppData\Local\d
ub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\build_x64\xlsxwriter.vcxproj]
(ソース ファイル '../src/workbook.c' をコンパイルしています)
worksheet.c
C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\include\xlsxwriter\worksheet.h(1,1): warning
C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 [C:\Users\user1\AppData\Local\du
b\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\build_x64\xlsxwriter.vcxproj]
(ソース ファイル '../src/worksheet.c' をコンパイルしています)
xmlwriter.c
ioapi.c
zip.c
コードを生成中...
コンパイル中...
iowin32.c
tmpfileplus.c
コードを生成中...
xlsxwriter.vcxproj -> C:\Users\user1\AppData\Local\dub\packages\xlsxd\4.0.4\xlsxd\libxlsxwriter\build_x64\Release\xls
xwriter.lib
Building Custom Rule C:/Users/user1/AppData/Local/dub/packages/xlsxd/4.0.4/xlsxd/libxlsxwriter/CMakeLists.txt
1>
-- Install configuration: "Release"
-- Installing: C:/Users/user1/AppData/Local/dub/packages/xlsxd/4.0.4/xlsxd/install_dir/libxlsxwriter/lib/x64/Release/
xlsxwriter.lib
-- Installing: C:/Users/user1/AppData/Local/dub/packages/xlsxd/4.0.4/xlsxd/install_dir/libxlsxwriter/lib/x64/Release/
xlsxwriter.pdb
-- Installing: C:/Users/user1/AppData/Local/dub/packages/xlsxd/4.0.4/xlsxd/install_dir/libxlsxwriter/include/xlsxwrit
er.h
-- Installing: C:/Users/user1/AppData/Local/dub/packages/xlsxd/4.0.4/xlsxd/install_dir/libxlsxwriter/include/xlsxwrit
er
-- Installing: C:/Users/user1/AppData/Local/dub/packages/xlsxd/4.0.4/xlsxd/install_dir/libxlsxwriter/include/xlsxwrit
er/app.h
-- Installing: C:/Users/user1/AppData/Local/dub/packages/xlsxd/4.0.4/xlsxd/install_dir/libxlsxwriter/include/xlsxwrit
er/chart.h
-- Installing: C:/Users/user1/AppData/Local/dub/packages/xlsxd/4.0.4/xlsxd/install_dir/libxlsxwriter/include/xlsxwrit
er/chartsheet.h
-- Installing: C:/Users/user1/AppData/Local/dub/packages/xlsxd/4.0.4/xlsxd/install_dir/libxlsxwriter/include/xlsxwrit
er/common.h
-- Installing: C:/Users/user1/AppData/Local/dub/packages/xlsxd/4.0.4/xlsxd/install_dir/libxlsxwriter/include/xlsxwrit
er/content_types.h
-- Installing: C:/Users/user1/AppData/Local/dub/packages/xlsxd/4.0.4/xlsxd/install_dir/libxlsxwriter/include/xlsxwrit
er/core.h
-- Installing: C:/Users/user1/AppData/Local/dub/packages/xlsxd/4.0.4/xlsxd/install_dir/libxlsxwriter/include/xlsxwrit
er/custom.h
-- Installing: C:/Users/user1/AppData/Local/dub/packages/xlsxd/4.0.4/xlsxd/install_dir/libxlsxwriter/include/xlsxwrit
er/drawing.h
-- Installing: C:/Users/user1/AppData/Local/dub/packages/xlsxd/4.0.4/xlsxd/install_dir/libxlsxwriter/include/xlsxwrit
er/format.h
-- Installing: C:/Users/user1/AppData/Local/dub/packages/xlsxd/4.0.4/xlsxd/install_dir/libxlsxwriter/include/xlsxwrit
er/hash_table.h
-- Installing: C:/Users/user1/AppData/Local/dub/packages/xlsxd/4.0.4/xlsxd/install_dir/libxlsxwriter/include/xlsxwrit
er/packager.h
-- Installing: C:/Users/user1/AppData/Local/dub/packages/xlsxd/4.0.4/xlsxd/install_dir/libxlsxwriter/include/xlsxwrit
er/relationships.h
-- Installing: C:/Users/user1/AppData/Local/dub/packages/xlsxd/4.0.4/xlsxd/install_dir/libxlsxwriter/include/xlsxwrit
er/shared_strings.h
-- Installing: C:/Users/user1/AppData/Local/dub/packages/xlsxd/4.0.4/xlsxd/install_dir/libxlsxwriter/include/xlsxwrit
er/styles.h
-- Installing: C:/Users/user1/AppData/Local/dub/packages/xlsxd/4.0.4/xlsxd/install_dir/libxlsxwriter/include/xlsxwrit
er/theme.h
-- Installing: C:/Users/user1/AppData/Local/dub/packages/xlsxd/4.0.4/xlsxd/install_dir/libxlsxwriter/include/xlsxwrit
er/third_party
-- Installing: C:/Users/user1/AppData/Local/dub/packages/xlsxd/4.0.4/xlsxd/install_dir/libxlsxwriter/include/xlsxwrit
er/third_party/ioapi.h
-- Installing: C:/Users/user1/AppData/Local/dub/packages/xlsxd/4.0.4/xlsxd/install_dir/libxlsxwriter/include/xlsxwrit
er/third_party/queue.h
-- Installing: C:/Users/user1/AppData/Local/dub/packages/xlsxd/4.0.4/xlsxd/install_dir/libxlsxwriter/include/xlsxwrit
er/third_party/tmpfileplus.h
-- Installing: C:/Users/user1/AppData/Local/dub/packages/xlsxd/4.0.4/xlsxd/install_dir/libxlsxwriter/include/xlsxwrit
er/third_party/tree.h
-- Installing: C:/Users/user1/AppData/Local/dub/packages/xlsxd/4.0.4/xlsxd/install_dir/libxlsxwriter/include/xlsxwrit
er/third_party/zip.h
-- Installing: C:/Users/user1/AppData/Local/dub/packages/xlsxd/4.0.4/xlsxd/install_dir/libxlsxwriter/include/xlsxwrit
er/utility.h
-- Installing: C:/Users/user1/AppData/Local/dub/packages/xlsxd/4.0.4/xlsxd/install_dir/libxlsxwriter/include/xlsxwrit
er/workbook.h
-- Installing: C:/Users/user1/AppData/Local/dub/packages/xlsxd/4.0.4/xlsxd/install_dir/libxlsxwriter/include/xlsxwrit
er/worksheet.h
-- Installing: C:/Users/user1/AppData/Local/dub/packages/xlsxd/4.0.4/xlsxd/install_dir/libxlsxwriter/include/xlsxwrit
er/xmlwriter.h
D言語でのソースコード実装例
Excel
ファイルを作成するための実装例です。
/+ dub.sdl:
name "writeexcel"
dependency "xlsxd" version="~>4.0.4"
+/
// dub build --build=release --single writeexcel.d
import std.stdio;
import libxlsxd;
void main(string[] args)
{
writeExcel();
}
void writeExcel()
{
auto workbook = newWorkbook("test1.xlsx");
auto worksheet = workbook.addWorksheet(null);
/* Add a format. */
auto format = workbook.addFormat();
/* Set the bold property for the format */
format.setBold();
/* Change the column width for clarity. */
worksheet.setColumn(0, 0, 20);
/* Write some simple text. */
worksheet.writeString(0, 0, "Hello");
/* Text with formatting. */
worksheet.writeString(1, 0, "World", format);
/* Write some numbers. */
worksheet.writeNumber(2, 0, 123);
worksheet.writeNumber(3, 0, 123.456);
// for the lazy
worksheet.write(4, 0, 13.37);
// for the lazy
worksheet.write(4, 1, true);
worksheet.write(4, 2, "Hello 1337");
worksheet.setColumn(4, 2, 20.0);
}
コンパイルと実行結果
いつも通り、コンパイルと実行結果を記します。
D:\Dev> dub build --build=release --single writeexcel.d
Starting Performing "release" build using D:\App\Dev\dmd2\windows\bin64\dmd.exe for x86_64.
Up-to-date xlsxd 4.0.4: target for configuration [library] is up to date.
Building writeexcel ~master: building configuration [application]
Linking writeexcel
Finished To force a rebuild of up-to-date targets, run again with --force
D:\Dev> writeexcel